-
Release date: 2023-03-10
-
Requires: tileserver v2.2.0 and tilequeue v2.5.0 and rawr_tiles v1.1.0 and coanacatl v1.0.0
-
Credits: @travisgrigsby, @jeffdefacto, @peitili, @iandees, and @nvkelso
ENHANCEMENTS
- Significant performance improvements to reduce p99 file sizes globally (-45%) at all zooms to under 200 kb, with some improvements for low-zoom p50 sizes. Changes include: geometry simplification at low zooms, pushing some features like unclassified roads to the next zoom, dropping names on short lines and dropping other properties at mid-zooms to also allow more aggressive merges to multi-lines and multi-polygons, and more sophisticated handling of max zoom and overzoom tiles for buildings and addresses. Further reductions can be achieved by configuring Tapalcatl to selectively drop layers and name translations (eg to drop
earth
andtransit
layers or only keep English and Urdu names) depending on your business needs.
(Above) Chart shows sizes in kilobytes, based on commonly requested top 100,000 tiles at 512 pixel zooms. NOTE: all other zooms in this document use nominal 256 pixel zooms, offset by 1. - Internationalization is now feature complete by extending disputed boundary point-of-view handling fully into mid- and high-zooms with extensive paired data edits upstream in OpenStreetMap, using Natural Earth as a sanity check for country names, and consideration of common and less common edge cases, including Taiwan and Somaliland.
- MapLibre support with buffered tiles and connivence properties like pre-calculating shield text length allow Tilezen tiles to more easily be styled in MapLibre and MapboxGL, thus extending support beyond Tangram.
- boundaries: Add disputed boundary line point-of-view (POV) for mid- and high-zoom features sourced from OpenStreetMap (OSM), including extensive upstream editing in OSM to match Natural Earth's low-zoom disputed area modeling in earlier releases. New
unrecognized_dispute
kind anddisputed_by
property. (Issue #1901) - boundaries: Add missing Cyprus line-of-control (aka "green line") as it has custom
admin_level
tagging. (Issue #1898) - boundaries: Add Ukraine point-of-view for disputed boundaries. (Issue #1911)
- boundaries: Add disputed boundary in South China Sea scoped to China's point-of-view (POV). (Issue #1983)
- boundaries: Mark some Natural Earth low-zoom boundaries as default
unrecognized
, including for Abkhazia, Donbass, Nagorno-Karabakh, Northern Cyprus, Somaliland, South Ossetia, and Transnistria. (Pull request #2072) - buildings: Add additional non-OpenStreetMap buildings from the Microsoft sidecar in Daylight distribution.
- places: Always validate OpenStreetMap-sourced
country
,dependency
anddisputed
labels against Natural Earth and new ISO and TLC point-of-views. (Issue #2075, #2076, and #2077 and pull request #2069) - places: Add recasted Australia "suburbs" from OpenStreetMap as
locality
features to match local expectations. (Pull request #2070) - places: Improve continuity between Natural Earth and OpenStreetMap (OSM)
locality
features and theirmin_zoom
grading. (Issue #2020) - places: Join OpenStreetMap
locality
features with Natural Earth (NE), and prefers NE names to improve consistency across the zoom transitions. (Pull request #2088) - places: Join OpenStreetMap
locality
features with Natural Earth (NE), and prefers NE population to calculatepopulation_rank
for label grading. (Issue #2048) - places: Backfill
population
estimates for OpenStreetMap-sourcedlocality
features. (Issue #1992) - places: Cull
locality
andneighbourhood
features based on grid to right size tile payload to rendered features. (Issue #1999) and issue #2040) - pois: Add optional
direction
property, an integer indicating degrees from 0-359, forviewpoint
kind features. Thanks @rwrx. (Issue #598 and pull request #1916) - roads: Calculate new
shield_text_length
property to ease styling of road shields in MapboxGL-based map styles. (Issue #1979) - water: Add
kind_detail
for polygon features, with values including:basin
,canal
,ditch
,drain
,lake
,river
, andstream
. (Pull request #2047) - water: Mark water polygon feature as
kind_detail
=lake
when upstream OpenStreetMap value islagoon
,oxbow
,pond
,reservoir
, orwastewater
. (Pull request #2047) - water: Add optional
layer
property for complicated over-under rendering situations, with adjustedsort_rank
for some features. (Issue #1910) - all layers: Switch to Daylight distribution for ingesting OpenStreetMap planet files, including building and admin sidecars. WARNING: Some OSM feature IDs may be re-numbered. (Pull request #2085)
- all layers: Upgrade to Natural Earth to v5.1.2, circa May 2022 (Issue #2074)
- earth: Upgrade to osmdata.openstreetmap.de circa October 2021.
- places: Upgrade to Who's On First
neighbourhood
features, circa October 2021. - all layers: Add MVT buffer support to enable MapboxGL to render stroked lines at tile boundaries without missing triangles (eg for road casings). Tilequeue #401
- all layers: Vary the MVT tile
extent
so 8192 is only used onmax_zoom
(and 4096 earlier) to optimize file size while preserving overzooming. (Issue #1985) - all layers: Are now MVT v2 spec compliant, via related changes in Tilezen's mapbox-vector-tile v2.0.0 release.
BUG FIXES
- boundaries: Show all missing
disputed
lines for point-of-view (POV) in low-zooms (removemin_zoom
filter). (Issue #1970) - boundaries: French
region
lines show too early, switch all from funkyscale_rank
mapping to Natural Earth'smin_zoom
property. (Issue #2062) - boundaries: Drop additional ID and name properties at mid-zooms and merge lines at high-zooms. (Issue #2007)
- boundaries: Revert poor tolerance config change from earlier release, this improves visual look for 512-pixel tiles in MapboxGL-based styles. (Issue #1980)
- boundaries: Fix some incorrectly marked maritime boundaries with new buffered land masking file. (Pull request #2073)
- buildings: Add
root_id
=id
to simplify MapboxGL-based styles. (Issue #2092) - buildings: Remove small buildings, reduce building geometry details, and remove some properties at mid- and high-zooms. (Pull request #2052)
- buildings: Ensure
address
points always have amin_zoom
property (eg of17
for generated address points). This is paired with a Tilequeue change to drop zoom 17 features from 512-px tile sized zoom 15 tiles to reduce tile size. (Issue #2023) and (issue #2032) - landuse: Drop properties at low- and mid-zooms to encourage more feature merging. (Issue #2009)
- landuse: Show more medium-sized
park
polygons in cities at mid-zooms. (Issue #1995) - landuse: Tunnels for
canal
should draw underpedestrian
plaza so adjustsort_rank
for these and some other kinds. (Issue #1910) - landuse: Switch sourcing of
resort
upstream in OpenStreetMap to leisure from tourism. - roads: Remove
name
properties from short road segments where they don't have enough room to label. (Issue #2019) - roads: Adjust zooms for regional and local cycle network influenced features one zoom later. Drop more
all_networks
andall_shield_texts
for more zooms. Drop more bus, walking, and bicycle network properties at low- and mid-zooms. Drop general road shield properties at earlier zooms by kind. Drop other properties at earlier zooms. Selectively droplanduse_kind
from mid-zooms by kind. Shiftunclassified
roadsmin_zoom
back to 12 from 11 as that's more common outside the USA than previously explored and negatively affected tile size. (Issue #2008) - roads: Remove additional low- and mid-zoom
ferry
andaeroway
properties to enable more line merging. (Issue #2017, issue #2018, and pull request #2056) - roads: Revert poor tolerance config change from earlier release, this improves visual look for 512-pixel tiles in MapboxGL-based styles. (Issue #1980)
- roads: Fix wrong encoding for
CA:PE
road network in Prince Edward Island, thanks @musculman. (Pull request #1958) - places: Adjust min and max zoom of several country labels, including France and Norway to improve visual hierarchy and reduce tile size.
- places: Ensure Taiwan's country name is generic (and not objectionable to some).
- pois: Add sanity checks to
tz_estimate_parking_capacity
to guard against bad data entry for some large parking lots. - pois: Switch sourcing of
resort
upstream in OpenStreetMap to leisure from tourism. - transit: Simplify geometries at low- and mid-zooms. (Issue #1980)
- water: Remove name and other properties from low- and mid-zooms by kind to encourage more feature merging. (Issue #2010 and pull request #2047)
- water: Delay showing mid-zoom
canal
features when they don't support boats (and indicate if true with newboat
property), instead show them starting at zoom 11. (Pull request #2098) - water: Mark intermittent polygons when basin is of type
infiltration
ordetention
as OpenStreetMap often skips tagging thoseintermittent=yes
explicitly. (Pull request #2096) - water: Mark "reservoir" water polygon feature with a
reservoir
boolean. (Pull request #2047) - water: Mark water polygon feature with a
alkaline
boolean when upstream OpenStreetMap value islagoon
,salt
, orsalt_pool
. (Pull request #2047) - water: Tunnels for
canal
should draw underpedestrian
plaza so adjustsort_rank
. (Issue #1910) - water: Remove
reservoir
features that are covered with a "roof". (Issue #1982) - water: Remove low- and mid-zoom water labels from small polygons. (Issue #2003)
- water: Ensure sea labels are visible at mid- and high-zooms, not just the max zoom. (Pull request#2103)
- all layers: Simplify geometry of low-zoom Natural Earth features in all layers to reduce file size. (Issue #2014)
DOCUMENTATION CHANGES
- Updated TileJSON for v1.9 schema changes.
- Updated Layers documentation for v1.9 schema changes.
- Add definitions and Wikidata ID concordances to poi layer kind list (now a table). (Issue #1939)
- Resolved some dangling TODOs and documentation, changelog formatting from v1.8.0 and earlier releases.
- Add to
hgv_restriction
field an allowedaxels
, thanks @Nazariii. (Pull request #1938) - Add
network
as an optional property to Traffic Flow and Incidents layers, , thanks @conor-ettinoffe-here. (Pull request #1936) - Change of
hgv_time_restrictions
field to shorter Time Domain from more verbose GDF 5.1, thanks @roman-ianivskyy. (Pull request #2063) - Explain Chinese language name properties for traditional and simplified settings.
name:zh
has been deprecated but is still included. Instead use explicatename:zh-Hans
中文 (Chinese): for primarily simplified (but sometimes traditional) andname:zh-Hant
中文 (Chinese): for primarily traditional (but sometimes simplified) properties. (Pull request #1986, #1956, #1960, and #1961) - Add missing documentation for boundaries layer kind values from Natural Earth, including:
disputed_breakaway
,disputed_claim
,disputed_elusive
, anddisputed_reference_line
. (Pull request #1986) - Add scripts and documentation for OSM disputed borders. (Pull request #2085)
- Better document project, tile schema, and documentation licenses. (Issue #1136)
- Document Mac support for Apple silicon (eg M1 chips). (Pull request #2102)
- Document Python 2.7 working environment.
INTERNAL CHANGES
- Introduce pre-commit linters for YAML, JSON, and Python. (Issue #2004 and pull request #2029 and #2113)
- Add geo indexes and
ST_DWithin
to limit the amount of work done when calculating transit layer features. (Pull request #1946) - Add new
pois_direction_int
Python transform, thanks @rwrx. (Issue #1916) - Add new
osm_zh_variants_lookup
,wof_zh_variants_lookup
andne_zh_variants_lookup
Python options. - Add new
clean_backfill_zh
andpost_process_osm_zh
Python transforms. - Add new
keep_n_features_gridded
Python transform (used for reducing size of places layer). - Add new
tags_set_ne_pop_min_max_default
Python transform. - Remove outdated
mz_min_pixels
Python transform. (Issue #1917) - Add ability to skip broken integration tests with
@unittest.skip(BROKEN)
decorator, many of these are because of OSM data drift not logic problems. - Add support for preprocessed inline geojson layers. (Issue #2095](#2095))
- Tests: changed protocol to https, thanks @MrKrisKrisu. (Issue #1922)
- Tests: Fix two new water failures. (Issue #2038)
- Update the way we grab OpenStreetMap assets to Daylight distribution.
- Switch OpenStreetMap import config as LUA to Postgres. (Pull request #2089)
- Add ability to fix &/or enrich OSM on import using SQL, eg for US state abbreviations and road tagging. (Pull request #2104)
- Add SQL script to allow suppressing names in disputed island areas. (Pull request #2067)
- Update the way we grab tile assets, like
buffered_land
. - Update the way we grab Natural Earth assets to their CDN as versioned assets.
- Update the way we grab Who's On First assets. (Pull request #1977)
- Add support for on-the-fly GeoJson layers and a new Mutator Transform. (Pull request #2095 and related tilequeue/414)
- Add new and missing requirements to requirements.txt (like hanzidentifier).
- Bump werkzeug dependency from 0.12.2 to 0.15.3. (Issue #1934)
- Update Werkzeug and urllib3 to account for security patches. (Pull request #1946)
- Limit setuptools to a version that supports Python 2 until we support Python 3. (Pull request #1946)
- Significant performance improvements to reduce p99 file sizes globally (-45%) at all zooms to under 200 kb, with some improvements for low-zoom p50 sizes. Changes include: geometry simplification at low zooms, pushing some features like unclassified roads to the next zoom, dropping names on short lines and dropping other properties at mid-zooms to also allow more aggressive merges to multi-lines and multi-polygons, and more sophisticated handling of max zoom and overzoom tiles for buildings and addresses. Further reductions can be achieved by configuring Tapalcatl to selectively drop layers and name translations (eg to drop