Wykres commitów

1237 Commity (e5a5acfa99a0304dc9403a5e77d14546b3363d60)

Autor SHA1 Wiadomość Data
Brian Sperlongano e5a5acfa99
Render long-distance ferries at longer zooms (#1486)
In some areas of the world, ship transportation is the main means of long-distance travel.  For example, in Alaska, the [Alaska Marine Highway System](https://dot.alaska.gov/amhs/route.shtml) is the principal means of transportation through the Alaska Panhandle and down the Aleutian island chain.  The AMHS carries the same importance that the Interstate Highway System has on land, and these ferry routes are exceptionally long distance.
2023-03-15 16:55:47 +01:00
Brian Sperlongano d8c367f42c
Remove bridge/tunnel attributes from tiny bridges (#1283)
This PR now removes bridge/tunnel/ford attributes from the `transportation` layer from sections of bridge/tunnel etc that are too small to be meaningfully visible at a particular zoom level.  This allows those segments to be generalized into geometries along with the surrounding sections of road, thereby dropping lots of useless little pieces of geometry in lower-zoom tiles.
2023-03-15 13:22:08 +01:00
Brian Sperlongano 0c6dd1fecb
Update Slack link (#1494)
This PR updates the link to Slack in the contributor's guide.
2023-03-06 19:14:01 +01:00
Brian Sperlongano b7edcf6153
Convert osm_route_member unique index to trigger (#1501)
This PR changes the three-column unique index to an on-insert trigger. This should fix the issues we're having with CI failures and still achieve the behavior of coalescing duplicate routes. 

I moved the concurrency_index calculation into an intermediate materialized view to separate the de-duplication capability from both DENSE_RANK() and from imposm updates.
2023-03-06 17:10:30 +01:00
Tomas Pohanka 624cf7a8a3
Minor docs enhancement. (#1481)
Update docs, links, and comments.
2023-01-30 14:04:47 +01:00
Brian Sperlongano 5e9b7c475d
Add grade 1 tracks to paved (#1485)
This PR sets `surface=paved` for `highway=track` + `tracktype=grade1` if no other value of `surface` is set.  Roads tagged in this way are [generally paved](https://wiki.openstreetmap.org/wiki/Key:tracktype) and therefore encoding them as a paved road is appropriate.
2023-01-26 19:24:44 +01:00
Tomas Pohanka d2c69b0d45
Fix stops aggregation in osm_poi_point. (#1480)
This PR fixing the stops aggregations which now returns always `NULL` and wasn't reflected in the tiles.
2023-01-26 17:57:31 +01:00
Brian Sperlongano bc9bbd2e67
Coalesce duplicate route concurrencies (#1361)
# Problem description
#1128 introduced route relation concurrency information in OpenMapTiles via the `route_X` attributes.  The original implementation assumed that there would be a single route relation for each `network` and `ref` pair.  However, it is increasingly common practice to tag a separate route relation for each direction of a route in order to provide awareness to routers and other data consumers of the directionality of a route.  This standard and growing practice is described on the [OSM wiki page on route directions](https://wiki.openstreetmap.org/wiki/Route_directions).  Thus, the naïve implementation of #1128 caused duplicate entries to be added as `route_X` attributes in the case where separate route relations were used for directional routes.

# Solution description
This PR adds grouping when computing route concurrency information, such that duplicate entries are coalesced in a predictable way.  Since this grouping is done only within a route membership join of a single member way, the computational complexity should be trivial.
2023-01-26 16:15:47 +01:00
Brian Sperlongano efa6b27fba
Render POIs for large universities at low zoom (#1479)
This PR adapts the code used in #1457 to allow POIs to render up to z10 for very large features. I set the threshold at a very conservative value of 10% of a tile. Thus, it will render if an area POI covers at least 10% of a tile at a given zoom. Only for 'university' and  'college'.

Additionally, this consolidates a double UNION ALL on the same table with a WHERE/CASE combination, which is simpler.
2023-01-19 19:29:29 +01:00
Brian Sperlongano f9e358c962
Add substantial missing languages in the US (#1477)
This PR adds eight missing languages, all of which are among the top 25 languages spoken in the United States, as discussed in ZeLonewolf/openstreetmap-americana#586, and have at least 10,000 `name:xx` usages in the database. Additionally, most of these languages are the primary or national language in the countries where they are most commonly spoken.
2023-01-17 10:38:31 +01:00
ttomasz 3b4650fca1
Tile duplicate housenumber filtering (#1391)
This PR introduces simple filtering of duplicate housenumbers.

Simple means that filtering is done withing the tile.
Duplicates are defined as same housenumber, street, block_number[1].

Duplicates are usually caused by POIs. People like to add addresses to them. Most POIs have names so to prioritize addresses we pick features without names first.

Formula is: `row_number() OVER(PARTITION BY concat(street, block_number, housenumber) ORDER BY has_name ASC) == 1`
2023-01-17 09:34:27 +01:00
Brian Sperlongano 168e8300c0
Allow lakelines at native sizes (#1475)
This PR reduces the minimum lake line zoom to z3, allowing the largest lakes to show a renderable label. The lakeline function is restricted by the LineLabel() function, which limits lakelines to only those that are big enough to render a text label.  Therefore, further restricting lakelines by zoom is not necessary.
2023-01-16 11:33:43 +01:00
Brian Sperlongano edb42f2db3
Routes of Ireland (#1466)
This PR follows #1465 to implement pseudo-route relations for Republic of Ireland road routes as described in the [OSM wiki](https://wiki.openstreetmap.org/wiki/Ireland/Roads). Irish road routes work in the same way as UK road routes in that signage is derived from highway classification on a 1:1 basis. The scheme described in the OSM wiki is confirmed via [overpass query](https://overpass-turbo.eu/s/1por).

This feature follows the implementation currently used for UK road routes, in which a 10m Natural Earth polygon is used to determine which roads are located within Ireland to apply this processing.

This PR implements 3 classes of routes:
* M-roads, which are `highway=motorway` and signed with blue/white lettering.
* N-roads ("national roads"), which are `highway=trunk` or `highway=primary` and are signed with green/yellow lettering.
* R- and L-roads ("regional and local roads"), which are `highway=secondary`, `highway=tertiary` or `highway=unclassified`, and signed with white/black lettering
2023-01-15 13:52:43 +01:00
Brian Sperlongano 8b5aa3273e
Add other river-like water area features to class=river (#1467)
Currently, river areas (`natural=water` + `water=river`) are rendered in the tiles as `class=river`.  However, canal, stream, ditch, and drain water areas are rendered as `class=lake`.  Since these types of objects are all flowing water, they should be grouped together into `class=river`, which allows for styles that render flowing water differently to do so on a consistent basis.
2023-01-14 13:36:02 +01:00
James Westman 569e9cd5b4
Add borough to supported place classes (#1470)
Adds a new class value for the place layer, `borough`, and adds it to the OSM style with the same appearance as hamlets and suburbs.
2023-01-10 16:36:08 +01:00
Brian Sperlongano 5f7b2c11b3
Add GB primary/secondary routes (#1465)
This PR adds an additional pseudo-network for UK non-primary [routes](https://en.wikipedia.org/wiki/Great_Britain_road_numbering_scheme), which are signed with black on white signage with "A" and "B" prefixes. This scheme is described on the [OSM wiki](https://wiki.openstreetmap.org/wiki/Roads_in_the_United_Kingdom). Adding this third psuedo network is needed for generating shields for UK white/black signage for non-primary routes. 
Additionally, this fixes a minor bug under which single-digit refs would have been included.  Single-digit refs don't exist in the UK, because the numbering scheme is always prefixed by a letter, e.g. "A4".

I also included documentation updates and fixed the typo where a view was named "bg" instead of "gb".
2023-01-10 14:50:24 +01:00
Brian Sperlongano af8c6883dd
Revamp water label display logic (#1457)
* At zooms 9-13, water labels will now be rendered for water features that are at least 0.25 tiles in size.  This means that water features that are the same size as a 128x128 pixel square will get a point label.
* Labels for large water features are now shown at the lowest zoom at which it's appropriate to show a label.
* Bay and strait names (`natural=bay` and `natural=strait`) are included. 
* Large seas modeled as areas (e.g. Caspian Sea) render as `class=sea` rather than `class=lake`
2023-01-10 13:39:54 +01:00
Daniel Schep cd77b07e46
improve `class=path` styling (#1450)
This PR addresses that by:

* rendering oneway arrows on more than `subclass=cycleway`
* less opacity for path/footway casing
* adding the thin black casing to bridges
* adding `subclass=steps` & `subclass=bridleway` rendering
* render `bicycle=designated` as `subclass=cycleway` and `horse=designated` as `subclass=bridleway` (bike taking priority)
* improved tunnel rendering with double casing & adding main line
* made casing min zoom consistent across subclasses

All of these changes were made to mimic OSM Carto.
2023-01-06 10:08:03 +01:00
Brian Sperlongano 4d5fa84184
Add class=pond to the water layer (#1456)
This PR proposes to add a new class, "pond" to the water layer, which allows for a style to de-emphasize minor bodies of water (tagged `water=pond,basin,wastewater`) when compared to more significant objects tagged reservoir/lake.  This PR retains the default behavior of classifying a water body as a "lake" if more specific tagging is not added.
2023-01-06 08:44:11 +01:00
Brian Sperlongano 29e49f9424
Sub-national routes in Canada and refactor national network list (#1446)
This PR defines the set of routes in Canada which are equivalent in national importance to the US Interstate Highway System, and are therefore appropriate to render at zoom 4. This creates a sane, connected highway network at this zoom level across the USA and Canada.

This adds two additional network types for Canadian highways, ca-provincial for provincial-level roads, and ca-provincial-arterial for "highest importance" roads that are not part of the Trans-Canada highway but should be regarded as equivalent for low-zoom rendering purposes.

Additionally, this extracts out the country-specific network checks to a separate function in order to define "equivalent top-level networks" by country, providing a place to add additional national definitions as they're added by contributors.
2023-01-05 17:36:36 +01:00
Brian Sperlongano c4d86d44a6
Fix zoom ordering (#1444)
This PR improves the behavior introduced in #1440, which inadvertently included all motorways at z4, which was unintended.  Instead, this PR provides an appropriate progression from z4 to z5 with the highest national-importance highways being rendered at z4 (including where they degrade to trunk, as in Canada), and all motorways being added to the mix at z5.
2022-11-28 19:19:29 +01:00
Adam Laža aa9c39ba3b
Add `build-style` and `download-fonts` targets. (#1445)
This PR adds `build-style` and `download-fonts` targets to `start-tileserver` target. 

Calling `build-style` and `download-fonts` ensures that there is the OSM OpenMapTiles style build and ready and fonts downloaded.
2022-11-28 15:56:00 +01:00
Brian Sperlongano ca4a64ba72
Add transcanada highway to z4 (#1440)
This adds support to show the Trans-Canada Highway at zoom 4.  Despite being the most important highway network in Canada, portions are `highway=trunk` due to the remoteness of the countryside.  However, it's still important to show a connected highway network at the lowest zoom without showing all trunk roads at this zoom.

This change also adds support for US Interstate Highways to be drawn at z4 when they're tagged as trunks.  There's only a few examples of this, but it removes those (tiny) gaps from the generalized road geometries. As we identify additional countries which should have their most important road network rendered at the lowest road zoom even if they're trunk, we can add them to the list of networks that get this treatment.
2022-11-15 17:33:29 +01:00
Thomas Helmrich 567939b5ce
added information about how to prevent a possible error during 'generate-tiles-pg' (#1432)
Added a comment within docker-compose.yml to prevent an error during `make generate-tiles-pg`
2022-10-20 11:11:44 +02:00
Tomas Pohanka 4cb65b0a4f
Prerelease update docs. (#1425)
Update documentation before release v3.14.
2022-10-07 08:58:46 +02:00
Adam Laža f21b677083
OSM OpenMapTiles style (#1420)
* OpenMapTiles style

* Rename style snippets from layer_name.json to defaultstyle.json

* Add README to icons dir.

* Add README to icons dir.

* Rename snippets to style.json

* Fix spritezero - move icons to svg subdir

* Move icons from style/icons/svg directly to style/icons

Co-authored-by: Tomas Pohanka <TomPohys@gmail.com>
2022-10-06 16:09:21 +02:00
Tomas Pohanka cd0ffacc72
Update capital possible values (#1421)
Update documentation about a place - capital possible values.

Based on https://github.com/openmaptiles/openmaptiles/pull/1401
2022-09-28 14:42:51 +02:00
bgo-eiu 6212c056ea
Added quarry to landuse list (#1404)
This includes quarry in the list of landuse features

Co-authored-by: Tomas Pohanka <TomPohys@gmail.com>
2022-09-08 11:43:48 +02:00
Tomas Pohanka 6e73058a23
Class shipway (#1415)
In `transportation_name` layer for `shipway` used Instead of `subclass` use `class` attribute for `ferry`. But `subclass` remains.
2022-09-08 09:10:42 +02:00
Tomas Pohanka e079e82cb1
Better generalization for `landuse=residential`. (#1414)
This PR creates larger polygons of `residential` land-use areas for upper zoom levels (especially for zoom 6 - 10).

Clusters are created with the same logic as for [`building on z13`](b14da2eafb/layers/building/update_building.sql (L34-L49)).

The generalization of land-use prolongs the `import-sql` step of the `landuse` layer. But it is still faster than the `building z13` generalization which with the parallel importing keeps the whole `import-sql` time untouched.
2022-09-02 10:01:41 +02:00
Tomas Pohanka 029033a593
Filter a bigger areas for landcover z7 - z13 (#1413) 2022-09-01 15:02:15 +02:00
Tomas Pohanka b14da2eafb
Update to Natural Earth v5.1.2 (#1409)
This PR updating Natural Earth dataset from v4.1 to 5.1.2. It is in cooperation with https://github.com/openmaptiles/openmaptiles-tools/pull/414, where is `import-data` docker image updated.

PR removes manual fixes for lake merging (already fixed in version 5.1.2)

Switched comparison from `gn_ascii` (removed from NE5) to `name_en`.

Could be merged after https://github.com/openmaptiles/openmaptiles-tools/pull/413. After OMT-T is merged, it will use `latest` image (until the release of OMT-T v7)
2022-08-02 15:47:43 +02:00
Tomas Pohanka dae00f2604
Add missing requires NE tables to layers. (#1410)
Adding missing requires Natural Earth tables for layers.
2022-08-02 14:22:58 +02:00
zstadler 1c1231e430
Update UPDATE.md including Makefile improvements (#1408)
- Add `make import-diff` and `make generate-changed-tiles`
- Update `UPDATE.md` accordingly
- Other updates and clarifications in `UPDATE.md`
2022-07-26 18:59:34 +02:00
Clay Smalley 337f81284d
Add highway=bus_guideway (#1407)
Guided busways (or bus guideways in OSM terminology) are special roadways along which bus operators can travel smoothly at high speeds without steering. These are tagged highway=bus_guideway on OpenStreetMap.

Currently, highway=busway is surfaced in OpenMapTiles as the busway class in the transportation layer, but highway=bus_guideway is not present. These two types of roadways serve generally similar purposes, so it would make sense to have guided busways at the same zoom levels.
2022-07-26 15:26:57 +02:00
Brian Sperlongano 5e51627895
Remove support for waterway=riverbank (#1405)
This PR removes support for `waterway=riverbank`.  Usage of waterway=riverbank has [declined to globally insignificant levels](https://taginfo.openstreetmap.org/tags/waterway=riverbank).

In other projects:
* Support for `waterway=riverbank` was removed from the iD editor in openstreetmap/iD#5591
* Removal of `waterway=riverbank` was tracked for JOSM in [JOSM ticket 21630](https://josm.openstreetmap.de/ticket/21630) and was completed in revision [18519](https://josm.openstreetmap.de/changeset/18519/josm)
* Removal of `waterway=riverbank` from openltmap (Lithuania vector map) occurred in [[1]](507f095b35)
2022-07-26 14:34:02 +02:00
Brian Sperlongano 9c78c15943
Add support for county seats (capital=6) (#1401)
This PR adds support for `capital=6` in the place layer, which is used for tagging county seats in the US.  A county seat is the capital of a county.  In addition, I reorganized the code a bit to be simpler.

As noted in ZeLonewolf/openstreetmap-americana#384, we would like to render county seats along with state and national capitals, as this is typical styling on American-style maps.

Update with also with `capital=3` and `capital=5`
2022-07-26 13:19:16 +02:00
SahAssar dc1e21fccc
Change typecheck to perform within the current namespace/schema (#1389)
This PR fixes #1388 by doing a test cast for the type and if it fails adding the type.
2022-07-26 12:26:46 +02:00
Jeroen Hoek da7b1b1645
Add natural=shrubbery to landcover (#1397)
This adds `natural=shrubbery` to landcover (next to the similar `natural=scrub`).

Fixes #1396
2022-06-01 18:20:35 +02:00
Ryan Russell b3af3d47d6
docs - fix functions (#1395)
fix typo
2022-06-01 10:01:44 +02:00
ttomasz 82b00c1389
Add POI parcel locker (#1390)
closes #1370 

This PR adds a parcel locker to post class.

Similarly to ATMs from PR #1375 if a name is not present we try to use `brand` or `operator`. Here we also try to add `ref` to the brand or operator since it can disambiguate parcel lockers that are next to each other (which happens).
2022-06-01 09:32:10 +02:00
Tomas Pohanka 7d52c9a9e5
Update before minor release (#1386) 2022-05-06 07:49:57 +02:00
Tomas Pohanka 5820534153
Add swimming pool to class attribute. (#1385)
This PR adds swimming pools as a class in the water layer. Until now all swimming pools were classified as `lake`.
2022-05-05 20:57:51 +02:00
Tomas Pohanka 51751b5b78
Add OSM ID to the lakes (#1383)
This PR adding OSM ID to the lakes

OSM lakes are used from zoom 6
From zoom 0 to zoom 5 are used Natural Earth lakes. 
  - There is a new joining mat. view (`match_osm_ne_id`) contains which Natural Earth ID should convert to OSM ID. This logic is used to keep a consistent ID between switching between NE (zooms 0 - 5) and OSM (zooms 6 - 12). For smaller areas (not the whole planet), where are not available OSM lakes, the NE lakes keep their NE ID.
  - There are also switch the final views to the mat. views - this should slightly increase performance (get rid of multipolygons).
  - FIX typo for zooms 0 - 3 (`lakes` instead of `lake`).
2022-05-05 14:26:57 +02:00
Adam Laža ef9a68b19a
GE-871 upsert network_type column in update_osm_route_member (#1384)
Fixes #1374 

This PR fixes `update_osm_route_member()` function. Before this the column `network_type` became empty after daily-update.
This PR adds `network_type` into upsert together with `rank` and `concurrency_index` columns.
This bug had occurred once already and had been fixed in https://github.com/openmaptiles/openmaptiles/pull/1239 but then some columns were added and these new columns were not added into the upsert.
2022-05-05 13:14:35 +02:00
Frédéric Rodrigo b8e87fbf07
Use diff generalization on osm_important_waterway_linestring_gen_z* (#1359)
Replace the `REFRESH MATERIALIZED` on `osm_important_waterway_linestring*` by differential update.

The way of doing this is the same as other differential updates.
2022-05-04 15:43:25 +02:00
Frédéric Rodrigo bff74511b6
Use diff update on osm_transportation_merge_linestring (#1357)
Replace the `REFRESH MATERIALIZED` on `osm_transportation_merge_linestring_gen_z*` by differential update.

The way of doing this is the same as other differential updates. But in this case there two `GROUP BY` level. So all the the process have to be done twice.
2022-05-04 14:22:15 +02:00
zstadler 5add9a5cef
Restore controlability with environment variables (#1364)
Since PR #922 the contents of `.env` are included in `Makefile` in order for `make` to by aligned with the `docker-compose` settings.

```
# Make all .env variables available for make targets
include .env
```

The down-side of employing the `include` mechanism is that the settings  in `.env` now take higher precedence than the shell environment variables. As a result, controlling the OpenMapTiles flow because more difficult. For example, tests for `DIFF_MODE=true` had to modify the contents of `.env` in order to work:
b0e7f7884c/.github/workflows/integrity.yml (L45-L47) and
b0e7f7884c/Makefile (L629-L630)

Users were also faced with similar difficulties.

This PR restores the ability to control `make` and `quickstart.sh` using environment variable while keeping the use of the `.env` at a lower priority.

The result is restoring the ability to easily adjust the OpenMapTiles flow using environment variables, such as:
```
PGPORT=54321 DIFF_MODE=true ./quickstart.sh monaco
```

#### Notes: 
1. This PR depends on #1363
2. This PR includes some clean-up of `Makefile`
2022-04-28 09:30:15 +02:00
Brian Sperlongano df6906b7b5
Remove unneeded waterway='' check (#1377)
This PR removes an unnecessary check in water.yml.

generated SQL before:
```
SELECT CASE
           WHEN waterway='riverbank' THEN 'river'
           WHEN "waterway" = 'dock' THEN 'dock'
           WHEN "water" = 'river'
               OR "waterway" = 'riverbank'
               THEN 'river'
           WHEN "waterway" = '' THEN 'lake'
           ELSE 'lake'
           END;
```

generated SQL after:
```
SELECT CASE
           WHEN waterway='riverbank' THEN 'river'
           WHEN "waterway" = 'dock' THEN 'dock'
           WHEN "water" = 'river'
               OR "waterway" = 'riverbank'
               THEN 'river'
           ELSE 'lake'
           END;
```

The `waterway=''` test is purely redundant because it returns the same value as the fall-through ELSE case: `lake`.
2022-04-25 13:42:01 +02:00
ttomasz ca9e8f4e52
adds ATM to POI layer (#1375)
This PR adds ATM to POI layer.
If ATM isn't provided with a name tag we'll try to use operator or network instead.
2022-04-25 10:29:08 +02:00