When a new version of the Protomaps basemap schema is released, developers should be able to tell from the version increment how much effort it will take them to integrate the new tiles with their map. We use semantic versioning to communicate this.
Semantic versioning (or SemVer) is a formalized way of making promises with an X.Y.Z version indicator.
MAJOR.MINOR.PATCH, example:1.0.0(default)MAJOR.MINOR.PATCH-POSTFIX, example:1.0.0-pre1(optional)
- MAJOR version X for incompatible API changes.
- MINOR version Y when adding functionality in a backwards-compatible manner, and
- PATCH version Z when fixing backwards-compatible bugs
- pre-release version -POSTFIX when releasing developer previews
NOTE: The above applies after software has reached as version 1.0.0, no promises are made for earlier versions.
- Major version X: high – significant integration challenges, read the changelog closely
- Minor version Y: low – some integration challenges, read the changelog
- Bug fixes Z: none – simply use the new tiles, skim or ignore the changelog
- Pre-release POSTFIX: low to high – some to significant integration challenges, read the changelog
Upon our version 1.0.0 release Protomaps Basemap makes the following promises based on the Tilezen schema:
common- Theselayers,propertys, andkinds are generally available across all features in a Tilezen response.- Establishes basic selection of features and their arrangement into specific named layers.
- Core properties needed for display and labeling of features:
- Special bits that make vector tile content interoperably Tilezen, including
kind,kind_detail,landuse_kind,kind_tile_rank,min_zoom,max_zoom,is_landuse_aoi,sort_rank,boundary, andmaritime_boundary. - Fundamental properties like
name(including localized names),id, andsourceincluded on most every feature.
- Special bits that make vector tile content interoperably Tilezen, including
common-optional- These are meant to be part of a common set, but may not be present because they aren't relevant or because we don't have the data (primarily featurepropertys, but could also belayers).- Used to refine feature selection.
- Lightly transformed interoperable Tilezen properties based on original data values. Examples include:
country_capital,region_capital,bicycle_network,is_bridge,is_link,is_tunnel,is_bicycle_related,is_bus_route,walking_network,area, left & right names and localizedname:*values on lines, and left & rightidvalues on lines. - Fundamental properties like
ref,colour,population,elevation,cuisine,operator,protect_class, andsport.
optional- These are the properties of a specific, less importantkind, or generally present acrosskinds but only in exceptional cases.- Often used to decorate features already selected for display.
- Additional properties like
capacityandcovered.
- Remove
common layer - Change
common layername - Remove
common-optional layer - Change
common-optional layername - Remove
commonfeature property completely from all zooms - Change
commonfeature property name - Remove
common-optionalfeature property at zoom 14 or more - Change
common-optionalfeature property name - Remove
optionalfeature property at zoom 14 or more - Change
kindvalue name - Remove
kindvalue completely from all zooms - Move
kindfrom one layer to another - Additional simplification across
kindvalues in zooms 14, 15, or 16 (or max zoom) by removingcommon,common-optional, and/oroptionalproperties by merging or other method - Simplification within
kindvalues at zooms 16 (or max zoom) by removingcommon,common-optional, andoptionalproperties by merging or other method - Change of <= -3 (earlier) to default
min_zoomormax_zoomvalues to determine whenkindis included - Change of >= +2 (later) to default
min_zoomormax_zoomvalues to determine whenkindis included - Change of version of a positioned glyph font for an already included script
- Add
commonlayer - Add
common-optionallayer - Add
commonfeature property - Add
common-optionalfeature property - Add
optionalfeature property - Add new
kindvalue - Additional simplification across
kindvalues at zooms 13 or less by removingcommon,common-optional, andoptionalproperties by merging or other method - Additional simplification within
kindvalues at zooms 13, 14, or 15 by removingcommon,common-optional, andoptionalproperties by merging or other method - Reassign 50% or more of existing
kindvalue into a newkindvalue, when kind has 10,000 or more features - Change of <= -2 (earlier) to
min_zoomormax_zoomvalues to determine whenkindis included - Change of >= +1 (later) to default
min_zoomormax_zoomvalues to determine whenkindis included - Change the maximum Tilezen zoom (currently zoom 16).
- Add new positioned glyph font script
- Add
optionallayer - Change
optionallayer name - Remove
optionallayer - Additional simplification within
kindvalues at zooms 12 or less by removingcommon,common-optional, andoptionalproperties by merging or other method - Reassign an existing
kindvalue to an another existingkindvalue when they are equivalent (e.g. fixing the spelling of a value coming from an upstream data source) - Reassign less than 50% of existing
kindvalue into a newkindvalue, when kind has 10,000 or more features - Reassign more than 50% of existing
kindvalue into a newkindvalue, when kind has less than 10,000 features - Change of -1 to default
min_zoomormax_zoomvalues to determine whenkindis included - Adjustments to the overall map balance (proportion of features in one layer or another, proportion of
kinds in a single layer) by adjusting boosting ofmin_zoomvalues over thekind's default, limiting the number of individualkindfeatures in a given tile coordinate, and other means. - Add unpublicized
kindvalue - Remove unpublicized
kindvalue - Correct a regression in the API (to the last good version)
- Correct a newly added feature property name
- Correct a newly added
kindvalue
We do not version data features, but we do attempt to indicate the data source and the feature ID as assigned by that source so customers can investigate upstream changes.
Protomaps basemaps have 3 primary sources:
- Natural Earth (used for zooms 0-8 for most everything) updates infrequently (often annually)
- OpenStreetMap (used for zooms 9+ for most everything, sometimes earlier) updates frequently (at least daily)
- OpenStreetMapData (used for zooms 9+ in the earth and water layers only) updates infrequently (optimistically monthly)
- Add new feature
- Removal of existing feature
- Change feature name
- Change feature geometry
- Change feature property values (including property removal if removed from original source)
- Change feature
kindvalue (when upstream data source reclassifies them). - Change feature
min_zoom&/ormax_zoomvalues (when area or other signal changes upstream).
NOTE: It is possible to query the version of individual features by looking at a feature's source and id properties and performing a lookup via the source service, but that is beyond the scope of Tilezen. Because of simplification, id properties are not always available due to feature merging.
In addition to the common name locals call a place, the following common and common-optional languages are generally available:
name:arالعربية (Arabic) commonname:bnবাংলা (Bengali) – common-optionalname:deDeutsch (German) – common-optionalname:enEnglish – commonname:esespañol (Spanish) – commonname:frfrançais (French) – commonname:elελληνικά (Greek) – common-optionalname:hiहिन्दी (Hindi) – common-optionalname:idBahasa Indonesia (Indonesian) – common-optionalname:ititaliano (Italian) – common-optionalname:ja日本語 (Japanese) – common-optionalname:ko한국어 (Korean) – common-optionalname:nlNederlands (Dutch) – common-optionalname:plPolski (Polish) – common-optionalname:ptPortuguês (Portuguese) – common-optionalname:ruРусский (Russian) – commonname:svSvenska (Swedish) – common-optionalname:trTürkçe (Turkish) – common-optionalname:viTiếng Việt (Vietnamese) – common-optionalname:zh中文 (Chinese): primarily simplified but sometimes traditional – common – deprecatedname:zh-Hans中文 (Chinese): primarily simplified but sometimes traditional – commonname:zh-Hant中文 (Chinese): primarily traditional but sometimes simplified – common
Arabic, Chinese, English, French, Russian and Spanish are used by the United Nations for meetings and official documents. The other languages listed are either proposed as official language of the United Nations (Bengali, Hindi, Portugese, and Turkish) or frequently used in OpenStreetMap, Who's On First, or Wikipedia.
Additional localized names are available as common-optional and optional, but their actual use is the data is not widespread.
- Major additions, deletions to country names, borders, disputed territories, and capitals are possible and may be advertised but do not bump the Tilezen API version.
- Minor corrections to country names, borders, disputed territories, capitals, and other administrative geography are always possible and will not be tracked or advertised.
- Rollup of MAJOR Tilezen API changes
- Change the maximum Tilezen zoom at which tiles are generated by default (currently zoom 16)
- Remove a file format
- Backwards incompatible change to a file format
- Tilezen software dependency has a breaking change to the tile response
- Rollup of MINOR Tilezen API changes
- Add a file format
- Rollup of PATCH Tilezen API changes
- Infrequent update of static data sources like Natural Earth or OpenStreetMapData
- Backwards compatible change to a file format
- Software dependency has a backwards compatible change or bug fix with no change to the tile response