1336 Commits

Author SHA1 Message Date
IloveRumania
3218a6535d
Trunk roads missing shield (#1773)
OMT has generic highway shields for motorways and primary, secondary, and tertiary roads. However, mysteriously, trunk roads don't have such highway shields, which can be problematic if it doesn't have a name distinct from its highway designation.
2025-12-02 08:32:27 +01:00
Brian Sperlongano
855ad8d96d
Fix z-order grouping (#1768)
This PR fixes a bug that is producing duplicate features in the `transportation_name` layer because we aren't de-duplicating the z-order field.
2025-11-21 13:20:23 +01:00
Brian Sperlongano
94676c3816
Add test failure targets (#1761)
This PR adds a new Makefile target `show-test-failures` to display test failure details and updates the existing `test-sql` target to automatically show failures when tests fail. This avoids forcing the developer to log into the SQL database to review test failures

### New Features

- **Added `show-test-failures` target**: A new Makefile target that displays test failures from the `omt_test_failures` table in a user-friendly format
- **update `test-sql` target**: Modified to automatically call `show-test-failures` when tests fail
2025-10-06 08:25:11 +02:00
Jake Low
9fd6f078c2
Add 'official' boolean property to foot paths (#1707)
This adds a field called `official` to `highway={path,footway,cycleway,bridleway}` features in the `transportation` layer. The field's value is:
- `0` if the OSM element is tagged `informal=yes`
- `1` if the feature has an `operator` in OSM (or is tagged `informal=no`)
- unset otherwise (this is the large majority of cases in the data today, especially when considering sidewalks, bike lanes, etc that aren't typically tagged with an `operator`).

**Questions I have about whether this PR is correct:**
1. The `official` field is conceptually an optional boolean. I chose to make it an `int` because I saw that existing boolean fields in the tiles (e.g. `intermittent` on waterways, `toll` on roads) have been implemented as 0/1 integers. Is this the right type for this field?
2. I added `description` and `values` fields to the transportation layer's `mapping.yaml` file. Is there anything else I should do to document this new field? Not sure how the schema docs on opentrailmap.org are built, but I am assuming they're generated from these mapping files somehow.
2025-09-30 11:26:56 +02:00
Brian Sperlongano
cda9a7b626
Remove swimming pool from water_name (#1748)
Presently, swimming pool labels are rendered as lake points in the `water_name` layer.  This produces absurd results as follows:

In #1321, we made a separate swimming pool class so that they could be differentiated from lakes.  However, we did not adjust the labels.

In fact, we now have two nodes - a `water_name` node and a `poi` node:

To correct this, this PR simply removes swimming pool labels from the `water_name` layer, as labeling a swimming pool the same way as a lake is clearly wrong.  If there is a need to put labels on swimming pools, styles can continue to use the nodes available in the `poi` layer.
2025-09-30 10:03:44 +02:00
Petra Duriancikova
101673a6e9
Fix road labels letter orientation (#1751)
Fixes the bad orientation of a letter reported in https://github.com/openmaptiles/openmaptiles/issues/1750. Fixes any other potential weird letter rendering from zoom level 17 to 20 by making the symbol-spacing bigger at these zooms.
2025-09-30 07:52:54 +02:00
Saif Aljanahi
d5bab3fd61
chore: change wrong name for iraq country (#1745)
Mistakenly "iraq" written as "irak"
2025-09-30 06:53:41 +02:00
Tomas Pohanka
fd05c59595
Update OMT-Tools to 7.2. (#1758)
Update OMT Tools to 7.2 with fixed [download-osm (#462)](https://github.com/openmaptiles/openmaptiles-tools/pull/462). 

[OMT-T 7.2 Release notes](https://github.com/openmaptiles/openmaptiles-tools/releases/tag/v7.2.0).
2025-09-29 18:02:31 +02:00
Nicolas
bad9d01738
Villages respect name:xx (#1742)
villages use name:xx when available rather than only name
2025-08-26 17:43:32 +02:00
Opher Shachar
b799c4eaf3
Update quickstart.sh (#1740)
fix #1739 - `quickstart.sh` will not write out the help message instead of the version.
2025-08-20 10:48:54 +02:00
Michał Gwóźdź
077e7627f1
Drop osm_water_lakeline and osm_water_point tables before creating new ones (#1733)
I noticed that OpenMapTiles generate lake labels only when run for the first time. After that, it never recreates `osm_water_lakeline` and `osm_water_point` tables, so when I generate one region after another, only the first one has lake labels. This PR fixes that.
2025-08-08 15:04:52 +02:00
Grant
e1f2acfe09
Add Afrikaans to languages (#1732)
Add Afrikaans to Languages.
2025-08-04 08:17:36 +02:00
Petra Duriancikova
d409816eee
Fixes in style (#1730)
* Fix text-field expressions in POI

- Removed text-field expressions from transport, place of worship and accommodation.
- The language switcher wasn't able to parse them and they are not neccessary in the style.
- Added `"text-optional": true` to Accommodation - if both icon and text can't fit, only icon will be displayed, which simulates a bit the previous behaviour.

* Fix filter in City layer

Fixed filter, Istanbul was missing.
2025-07-31 12:41:47 +02:00
Adam Laža
f446b50d0c
Update style (#1728)
Update style snippets with the latest changes.
2025-07-29 12:10:20 +02:00
Romain Reignier
7e81eb677e
Fix QUIET var handling in Makefile (#1718)
The brackets were unbalanced and the condition always evaluated to false
so the --quiet flag was always added.

Fix #1717
2025-06-18 19:15:57 +02:00
Patrik Sylve
f70ae783b2
Set columns to null instead of dropping to avoid pg_deadlock during updates (#1710)
This PR addresses a pg_deadlock error that would cause an update to fail if a `select getmvt` was queried during update. The deadlock occurred due to an ALTER TABLE DROP COLUMN operation on temporary columns  ( `new_source_ids` and `old_source_ids`) in some linestring tables.

**Changes:**
*  instead of adding/dropping the columns during update, they are now updated and set to NULL. 
* Added new indexes on the source_ids columns  to speed up the UPDATE. 
* Will refresh `osm_park_polygon_dissolve_z4` concurrently in `park_polygon.refresh()` to avoid blocking. 

Co-authored-by: Patrik Sylve <patrik.sylve@t-kartor.com>
2025-02-28 13:27:52 +01:00
Patrik Sylve
e6a1000155
Use pg_trigger_depth to avoid re-trigger in update (#1708)
Some of the `update_osm_${LAYER}`-functions, which are executed by triggers on updates, execute an UPDATE statement on the same tables that have these triggers. This causes the trigger functions `flag` and `store` to run multiple times for one record. 

For instance, if I add log in the trigger functions and run an INSERT on `osm_housenumber_point`, this output is generated:  

```
NOTICE:  Store
NOTICE:  Flag
NOTICE:  Refresh housenumber
NOTICE:  Flag
NOTICE:  Store
NOTICE:  Flag
INSERT 0 1
```

If we limit the triggers from executing if they are called from another trigger using `pg_trigger_depth() < 1`, the triggers will only be triggered once per record:

```
NOTICE:  Store
NOTICE:  Flag
NOTICE:  Refresh housenumber
INSERT 0 1
```

This will prevent redunant executions and might improve update performance.  

Co-authored-by: Patrik Sylve <patrik.sylve@t-kartor.com>
2025-02-18 11:18:04 +01:00
Patrik Sylve
d32d74aaac
Improve getmvt performance on lower zooms (#1704)
I noticed slow performance in `getmvt` when generating tiles at zoom levels ~ 0-8.

The issue was due to CASE blocks in the `transportation` and `poi` layers, which were processing unneccessary rows at lower zoom levels. To optimize this I added a pre-filter on `zoom_level` to reduce the workload. 

In my tests, I timed the query `select getmvt(0,0,0);`. 

`area=europe/united-kingdom`: 

* Before: ~17 seconds
* With this fix:  ~80 ms

 `area=planet`:
 * Before: have not yet timed it, but i believe it was around 15min if i remember correctly
 * With this fix: ~10 seconds

Co-authored-by: Patrik Sylve <patrik.sylve@t-kartor.com>
2025-02-17 07:55:21 +01:00
Michał Gwóźdź
22cd373f66
Include mountain peaks without elevation, but with name tag (#1682)
Fixes #761, Fixes #1328

According to the https://github.com/openmaptiles/openmaptiles/issues/1328#issuecomment-1463800079 I included peaks without elevation, but with a name.

---------

Co-authored-by: Tomas Pohanka <TomPohys@gmail.com>
2024-12-18 16:53:00 +01:00
tbodt
7cf98a6293
Add Toki Pona to languages (#1689)
Add Toki Pona to languages.
2024-12-17 11:04:40 +01:00
PatrikSylve
4ed70ba4af
Removed update trigger on osm_boundary_polygon (#1697)
Removed update trigger on osm_boundary_polygon, which attempted to run `REFRESH MATERIALIZED VIEW` on the table `osm_boundary_polygon_gen_z5`, resulting in the error: "osm_boundary_polygon_gen_z5" is not a materialized view
2024-12-17 07:44:50 +01:00
PatrikSylve
e6a6fb9453
vacuum-db: use parenthesis for vacuum options (#1698)
Updated `vacuum-db` target to have the vacuum options within parenthesis to avoid syntax error.
2024-12-16 13:02:52 +01:00
Matt Hernandez
1e2c0ea976
Undo inverted brunnel filter for minor roads (#1690)
Re PR #1672: accidentally hides all minor roads except when brunnels
2024-10-16 10:09:43 +02:00
Tomas Pohanka
8a8aa1a78b
Update CI to use docker compose v2. (#1680)
GitHub Actions and self-hosted server using docker compose v2 (without hyphen).
2024-08-19 12:49:56 +02:00
Nick Walker
10d1f75f7c
Add landuse=flowerbed to landcover (#1661)
This adds `landuse=flowerbed` to landcover.

---------

Co-authored-by: Petra Duriancikova <petra.duriancikova@maptiler.com>
2024-08-01 12:50:18 +02:00
Max Weng
59f221ca12
update transportation style filter format (#1672)
The issue is transportation layer filter format not match maplibre style spec

it cause tileserver-gl errors when parse the style.json:
---------

Co-authored-by: Double Max <max@ground-map.com>
2024-07-31 14:25:32 +02:00
Tomas Pohanka
1ff5145451
Pre-release update. (#1657)
Update documentation before release v3.15.
v3.15
2024-04-29 13:16:59 +02:00
Tomas Pohanka
e6faa69a70
Fix z7-z4 roads (#1656)
Some US roads were not included in tiles, because the `ST_AsMVTGeom` did not transform geometry (result was NULL). This PR is trying to fix the geometry for `ST_AsMVTGeom`, even if the geometry is marked as valid (`ST_IsValid`). The odd geometry was caused by simplification when it could create `LINESTRING(1 1, 2 2, 1 1)` linestring, which in some cases was not converted into MVT. 

Also, for the US (on zoom 4) keeps just the network `us-interstate` and the `highway=motorway` or `osm_national_network(network)` for the rest of the world.
2024-04-24 11:47:27 +02:00
Tomas Pohanka
eae7d7e1ed
Documentation update. (#1654)
- Unifying `name_de` description for `mountain_peak` layer.
- Update the version of PostGIS for `generate-sqltomvt` function.
2024-04-03 15:26:59 +02:00
Tomas Pohanka
382b12ae8a
Drop osm_transportation_name_network table before recreation. (#1653)
Drop the main table for layer `transportation_name` layer before creation.

For the first SQL import, it is OK, but for the second import (e.g. for a different country by `import-osm area=yyy`) without dropping the whole database it will keep `osm_transportation_name_network` filled with data from the first import (after first `import-sql` step)

This PR will drop the already-filled table from the first import and insert data from the reimported area.
2024-04-03 13:43:28 +02:00
Tomas Pohanka
59692656bd
Preserving the highway network in Canada for z4. (#1652)
This PR reverts important Canada TransCanada road to zoom 4.

At zoom 4, the network `gb-trunk` is too dense, so it is moved to zoom 5+.
2024-04-02 14:22:37 +02:00
Tomas Pohanka
ee19519905
Add network for GBR and IRL. (#1649)
Fix a missing e-road relation for the United Kingdom and Ireland.
2024-04-02 11:08:50 +02:00
Tomas Pohanka
8266197149
Revert e-road and a-road. (#1648)
Partial revert the `e-road` and `a-road` added in https://github.com/openmaptiles/openmaptiles/pull/1619.

This PR leads to breaking the change of `network` and `ref` attributes for roads, which are not included in `osm_route_member_network_type`.
2024-04-02 10:09:20 +02:00
zstadler
3f0ba7ceba
Replace ["geometry-type"] with "$type" (#1646)
Related to https://github.com/maplibre/maplibre-style-spec/pull/519 and https://github.com/maplibre/maplibre-gl-js/issues/3516

According to the Style Spec, `["geometry-type"]` is expected to distinguish between LineString and MultiLineString, while `"$type"` does not. For the transportation layer, the distinction is harmful.

All of OMT style layers, except these two, use `"$type"`.
2024-03-28 10:52:38 +01:00
Adam Laža
c2ae2503c8
Fix borders z0-z4 (#1647)
This PR fixes two things:
- remove disputed name like `ne_*m_ogc_fid` from lines
- use South Sudan disputed boundary from `ne_10m_admin_0_boundary_lines_land_disputed` so there is no gap.
2024-03-27 13:56:23 +01:00
Tomas Pohanka
d709a51de6
Salt pond with class pond (#1645)
The salt pond is now under the class `lake`, this PR moves it into class `pond`.
2024-03-21 15:58:58 +01:00
Brian Sperlongano
af6dc684ef
Reduce transportation_name segmentation (#1643)
This PR reduces transportation_name layer fragmentation by ensuring the short brunnel segments are merged rather than dropped from view.

---------

Co-authored-by: Tomas Pohanka <TomPohys@gmail.com>
2024-03-21 08:08:56 +01:00
Adam Laža
136e1db4d1
Fix maritime low zooms (#1644)
This PR fixes boundary layer at low zoom levels:

-z4 - remove maritime boundary (Peru, northern and southern end of boundary between Canada and Alaska).
-z1-z4 - do not mix disputed boundary from NE and OSM - linestrings got duplicated. Use only NE data (z0-z4), then OSM data (z5+)
2024-03-18 13:23:38 +01:00
Tomas Pohanka
585b71f666
More roads for z4 and z5. (#1642)
This PR adds more roads to the zoom 4 for the United Kingdom and Ireland. Adding more roads for the USA at zoom 5.
2024-03-13 10:12:03 +01:00
Brian Sperlongano
d6fd5ef7cb
Change to pointonsurface (#1641)
Fixes #1640 

This ensures that place and poi points computed from areas result in a point node that is actually inside the area that it's derived from.  Unusual shaped areas (like a banana shape, for example) may produce points that aren't actually contained.
2024-02-29 14:39:13 +01:00
Andrea Mennillo
9f891b625a
Replace spritezero with spreet (#1631)
This updates `build-sprite` and `build-style` to use `spreet`.

It depends on https://github.com/openmaptiles/openmaptiles-tools/pull/442
2024-02-26 15:06:12 +01:00
Tomas Pohanka
5b00c496ef
New omt-tools version. (#1638) 2024-02-26 14:05:42 +01:00
Adam Laža
a65495f264
Fix housenumber_display.sql - cast to bigint instead of integer. (#1637)
Fixes `housenumber_display.sql` function and further improves https://github.com/openmaptiles/openmaptiles/pull/1632

Parsing text values that contain `;`, the string was split into array of values which were casted to `integer`. However, that fails for housenumber that exceed Postgres `int` range `-2147483648` to `+2147483647`.
There are such housenumber, e.g.: https://www.openstreetmap.org/way/1091331906#map=19/-3.82721/-38.59269
2024-02-26 13:04:00 +01:00
Andrea Mennillo
2f170fbbd8
Improve poi shop style (#1634)
The main goal is to improve consistency and reduce the number of poi without an icon.

- Remove music from poi cultural, music has only two subclasses music and musical_instrument, both are styled as poi shop
- Remove arts_centre from poi shop, it's already styled as poi cultural
- Remove chocolate icon, chocolate uses confectionery icon (see: https://github.com/openmaptiles/openmaptiles/pull/1628)
- Remove references to ice_cream class from poi shop
- Add missing gallery icon and move it to poi cultural (see: https://wiki.openstreetmap.org/wiki/Tag:tourism%3Dgallery)
- Use the icons alcohol, newsagent, perfumery, trade respectively for wine, kiosk, perfume and wholesale.
- Add a generic fallback icon for shops
2024-02-21 16:25:54 +01:00
Tomas Pohanka
de2fa04c37
Docs clean up. (#1636)
Update docs, license year and clean up `.env`.
2024-02-21 13:40:46 +01:00
Tomas Pohanka
44cf6c8e35
Default output filename as tiles.mbtiles (#1633)
Keep the default output filename as `tiles.mbtiles`. `tiles.mbtiles` is expected to start TileServer.

Using the `area` as the name causes TileServer not to run. The name could be changed by the user by
 - change `MBTILES_FILE` in `.env`
 - use MBTILES_FILE as an environmental variable before running `quickstart.sh` or `generate-tiles-pg` 

Co-authored-by: Adam Laza <@lazaa32>
2024-02-21 11:52:29 +01:00
Tomas Pohanka
b057d5941e
Update GitHub Actions. (#1635)
Bump GitHub Actions from v2 to v4.
2024-02-21 09:08:16 +01:00
Brian Sperlongano
b3c32321a3
[WIP] Expanded road route attributes (#1620)
This PR replaces the `route_N` attribute scheme with individual attributes for name and colour on routes.  Thus you will have:
* `route_N_network` to hold the route `network` value
* `route_N_ref` to hold the route `ref` value
* `route_N_name` to hold the route `name` value
* `route_N_colour` to hold the route `colour` or `ref:colour` value
2024-02-20 17:38:11 +01:00
Andrea Mennillo
ee8259ced5
style: use red color for volcano (#1630)
Change the color used for a volcano label and icon to #d40000.
2024-02-20 08:56:29 +01:00
Tomas Pohanka
718fd359d3
House number range fix. (#1632)
Fix house number range conversion based on https://github.com/openmaptiles/openmaptiles/issues/1583#issuecomment-1940901006.
2024-02-19 21:27:52 +01:00