- This is a breaking major version.
- NPM package renamed from
protomaps-themes-baseto@protomaps/basemaps - script-includes script name renamed from
protomaps-themes-base.jstobasemaps.js Themetype renamed toFlavor- migrate
CONTRASTflavor to external repo - Precomputed style JSON is no longer published to NPM
- All layer generation functions unified into a single
layersmethod. To migrate:
Before:
default("example","light","en")
labels("example","light","en")
layersWithCustomTheme("example",theme,"en")
layersWithPartialCustomTheme("example",theme,"en")
noLabelsWithCustomTheme("example",theme)
labelsWithPartialCustomTheme("example",theme,"en")After:
layers("example",namedFlavor("light"),{lang:"en"})
layers("example",namedFlavor("light"),{lang:"en",labelsOnly:true})
layers("example",flavor,{lang:"en"})
layers("example",{...flavor,buildings:"red"},{lang:"en"})
layers("example",flavor)
layers("example",{...flavor,buildings:"red"},{lang:"en",labelsOnly:true})- Add housenumbers via @SiarheiFedartsou [#380]
- add
--clipoption to tile generation which clips the entire tileset by a polygon or multipolygon. [#51]
- Improve boundary appearances at low zooms
- give all text halos for contrast improvements, remove halo-blur
- fix lake small font sizes
- bump planetiler to 0.8.4-SNAPSHOT, via @wipfli [#365]
- fix antarctica landcover not extending to bottom with Natural Earth, via @wipfli [#337]
- Fix
$typein water filters to be MapLibre v5.0 compatible.
- fix water
kind=oceanvia @dericke [#329]
- Add landcover styling [#154]
- Adjust appearance of landuse layers to fade in after landcover
- add icons for a few lapis and slategray POIs [#238, #163]
- adjust light theme earth color
- add fonts and landcover as optional properties of
Themeinterface
- fix buildings
min_heightvia @JfrAziz [#323]
- add icon sprites for six green kinds [#238]
- point v4 styles at v4 sprites assets URL
- change light theme water color to blue instead of white for contrast
- consistent halo size across layers
- add landuse
kind=runway
- fix
roadskind=ferry, remove ferrykind_detail[#312]
- Remove
medium_road - Move all current
transitfeatures intoroads pieris nowkind=pathkind_detail=pier- remove
levelandlayerkeys - change
link=1tois_link=true - change
level=-1andlevel=1tois_bridge=trueandis_tunnel=true - Remove
transit_piertheme property kind_detailin boundaries is the min admin level- add placeholder
sort_rankto relevant layers - rename peak
eletoelevation
- remove all
pmap:prefixes from style (breaking change) (#282) - refactor layers as described in tiles v4.0.0-alpha.3
- remove all
pmap:prefixes (breaking change) [#282] - remove
physical_point,naturalandphysical_linelayers.- move into
landuse,water,poisandearthlayers to align with Tilezen. - Some layers are now mixed geometry types.
- move into
- Add lang and script parameters to TypeScript style generation [#275]
- Replace Natural Earth places at low zooms with OSM [#289]
- Segment name by script via @wipfli [#273]
- change fountains in
waterlayer tokind=fountain[#279]
- change to
tsupfor building ESM/CJS/IIFE outputs via @iwpnd [#231]
- Use a positioned glyph font encoding for Devanagari via @wipfli [#265]
- More places kinds (port from Tilezen), refine zoom levels via @nvkelso [#259]
- Add
pmap:scriptfor non-latin names via @wipfli [#254]
- Exclude buildings from
transitlayer. via @pietervdvn [#249]
- introduce dependency on a spritesheet:
- example for
lighttheme https://protomaps.github.io/basemaps-assets/sprites/v3/light` - Style deployments need to depend on the spritesheet assets in addition to fonts. - Migrate town labels to single "symbol" style layer to specify linked "icon" and "text", using the new spritesheet to source the icon's image. This resolves a bug where townspot icons in the old places_locality_circle "circle" style layer were often orphaned (still displayed) even if the related text in the places_locality "symbol" style layer couldn't be placed. The circle style layer has been removed and consolidated into the symbol style layer.
- Standardize JS package.json on ES6 modules
- Order landcover by kind consistently [#154]
- Add Daylight Landcover from zooms 0-7. [#154]
- Improve boundaries generalization [#200]
- Add
village_green,landuse,allotmentsto POI layer via @lenalebt [#204] - Add to styles via
landuse_urban_greenlayer
- Improve water generalization detail by doing area filtering post-merge [#198]
- Add
village_greenandallotmentsto landuse layer via @lenalebt [#206] - Remove non-deterministic ordering ID from POIs
- stricter parsing of building height values [#205]
- Boundaries admin_level 3 and 5 are included along with 4 and 6, respectively [#189]
- Fix pedestrian bridge areas
- Fix ordering issues related to pedestrian bridges.
- Fix appearance of NE boundaries at low zooms.
- Add
pmap:kind=bus_stopto POIs. via @eikes
- Make
disputedtag on boundaries consistent [#190]
- Release date: 2023-07-10.
- Credits: @nvkelso, @bdon, @jamesscottbrown, @tyrauber, @HeikoGr, and @Edefritz
- landuse layer: Move
national_park,protected_area, andnature_reserveto landuse layer from natural layer as they are not natural but cultural. #47 - landuse layer: OSM features with
leisuretag are now mapped to individual kind values instead of all erroneously topark. #47 - landuse layer: Features with
amenitytag are mapped to individual kind values instead of all erroneously toschoolwhen nothospital. #47 - natural layer: Moved
national_park,protected_area, andnature_reserveto landuse layer. #47 - places layer: OSM
state(province) is nowregion(preparing for v4 Tilezen changes) #47 - places layer: OSM
cityis nowlocality(preparing for v4 Tilezen changes) #47 - places layer: OSM
townandvillageare nowlocality("city") instead ofneighbourhood(fixing v2 series bug and preparing for v4 Tilezen changes) #37
- Significant performance improvements to reduce p99 file sizes globally (-XX%) at all zooms to under 200 kb. Changes include: ...
- Core Tilezen schema properties added::
pmap:kindis present on every feature now in every layerpmap:kind_detailis optionally present on some features in some layers- DEPRECATION WARNING: in v4, the
pmap:prefix will be removed (sopmap:kindwill become simplykind)
- Core OSM tags for different kinds of places have been augmented, but...
- DEPRECATION WARNING: These OSM tags are marked for deprecation in v4 schema, do not use these for styling. They aren't needed and take up extra file size.
- If an explicate value is needed it should be a kind, or included in kind_detail. If there is a gap, please file an issue so it can be addressed.
- Less names, now with label placements:
- Names have been removed from most features at early and mid-zooms (to also reduce file size)
- Names have been kept on some features at early- and mid-zooms when they are known to be used for map display
- When features do have names, a pmap:min_zoom is added to achieve more predictable label collisions client side.
- DEPRECATION WARNING: in v4, the
pmap:prefix will be removed (sopmap:min_zoomwill become simplymin_zoom)
- DEPRECATION WARNING: in v4, the
- Zoom ranges of most features have been adjusted to remove details (and reduce file size) at early and mid-zooms. #47
- boundaries layer: Add boolean indication of
disputedlines #37 - boundaries layer: Use Natural Earth for low zoom boundary lines, including disputed status #47
- boundaries layer: Don't export admin_level
1,3,5, and7– those generally aren't styled and are taking up a lot of file size even at very low zooms #47 - boundaries layer: Adjust zoom range of
countylines to show starting at zoom 8 instead of 10. #47 - buildings layer: Adjust zoom ranges, push
building_partkind features to later zooms (to reduce file size) #47 - buildings layer: Quantize
heighttag at mid-zooms so more buildings merge in post-processing (to reduce file size) #47 - buildings layer: Add optional
min_heightproperty to enable 2.5D and 3D visualizations #47 - earth layer: Add 8 px buffer for Natural Earth sourced features at low zooms. #47
- landuse layer: Add new
kindvalues for:beach,pier,zoo,military,naval_base,airfield,cemetery,recreation_ground,winter_sports,quarry,park, andforest. #47 - landuse layer: Add new
national_parkkind (versuspark), looking atoperatortag to derive this from OSM to emphasize US National Park Service in United States of America and elsewhere #47 - landuse layer: Improve detection of
forestkind (versuswood), looking atoperatortag to derive this from OSM to emphasize National Forests in United States of America and elsewhere #47 - landuse layer: Remove names to reduce tile sizes (see the pois layer for calculated label points) #47
- landuse layer: Reduce small polygons to improve figure-ground contrast and reduce file size. #47
- landuse layer: Add
boundary,landuse,leisure, andnaturalproperties from OSM tags (though don't use them to be v4 safe) #47 - natural layer: Add new
kindvalue forgrass#47 - natural layer: Update to the same
pmap:kindcoallesce as in the landuse layer #47 - natural layer: Remove
boundaryandleisureproperties (they moved to landuse layer along with the relevant featurse) #47 - natural layer: Remove small polygons to improve figure-ground contrast and reduce file size. #47
- natural layer: Merge polygons with similar attributes to reduce file size. #37
- natural_lines layer: Show
riverlines 3 zooms earlier at zoom 9. #47 - natural_lines layer: For linear water features like rivers – add tunnel / bridge indicator with
pmap:level(same as roads layer) #47 - natural_lines layer: Add
bridge,tunnel, andlayerproperties from OSM. #47 - natural_lines layer: Add
intermittentboolean indicators. #47 - natural_points layer: Show
oceanandsealabel points much earlier. #47 - natural_points layer: Add calculated label positions for water features (like
lake,reservoir,swimming_pooland other terrestial water features; andbay,strait,fjordmarine featuers) #47 - natural_points layer: Add
alkaline,intermittent, andreservoirboolean indicators. #47 - natural_points layer: Add
natural,landuse,leisure,water, andwaterwayproperties from OSM (though don't use them to be v4 safe) #47 - places layer: Use Natural Earth for low-zoom
localityfeatures (to reduce file size) #47 - places layer: Add server-side label collisions with a label grid to reduce number of places in tiles, especially at mid-zooms. #47
- places layer: Remove
countryandregionlabels from mid- and high-zooms (still present at low-zooms) #47 - places layer: Add
pmap:kind_detailfor original OSM "place" tag values (including "city" instead of "locality") #47 - places layer: Add
pmap:population_rankfor a quantized and backfilled population approximation. #47 - places layer: Curate custom
min_zoomsforcountryandregion(state/province) labels to removes many labels from early zooms when they couldn't reasonably be labeled anyhow (to reduce file size) #47 - pois layer: Add new
national_parkkind (versuspark), looking atoperatortag to derive this from OSM to emphasize US National Park Service in United States of America and elsewhere #47 - pois layer: Improve detection of
forestkind (versuswood), looking atoperatortag to derive this from OSM to emphasize National Forests in United States of America and elsewhere #47 - pois layer: Add allow listed OSM features from natural (
beach) and landuse (cemetery,recreation_ground,winter_sports,quarry,park,forest,military) tags. #47 - pois layer: Add
amenity,attraction,boundary(select),craft,historic,landuse(select),natural(select),shop,railway(select), andtourismfeatures and exported OSM tag to schema property (though don't use them to be v4 safe) #47 - pois layer: Add additional pasthru unrestricted OSM values from
attraction,craft,historic,landuse,leisure, andnaturaltags. This augmentsamenity,railway,shop, andtourism. #47 - pois layer: Add
cuisine,religiontags (though usepmap:kind_detailinstead to be v4 safe) #47 - pois layer: Add
iataproperty onairportkind features to indicate if they have international service. #47 - pois layer: Derive label centroids from OSM ways and relations features to hugely increasing the number of included features #47
- pois layer: Add server-side label collisions with a label grid to reduce number of features in tiles at mid-zooms (all features still included at
max_zoom) #47 - pois layer: Add smattering of higher priority (even within a kind) features at earlier zoom levels (eg based on feature area and/or height). This primarily effects
aerodrome,airfield,cemetery,college,forest,golf_course,grocery,hospital,library,marina,military,national_park,nature_reserve,naval_base,park,post_office,protected_area,stadium,supermarket,townhall,university, andzoo, or very large building area derived labels, or very tall height building area derived labels. #47 - pois layer: Indicate with
pmap:min_zoomproperty when a feature first became eligible to be in tiles, and markmax_zoomfeatures to hide until later display zooms. Use thispmap:min_zoomproperty to setup client-side labe collisions. NOTE: In v4 it'll be renamed to justmin_zoom. #47 - roads layer: Modify
reftag values to remove some prefix values and remove whitespace values (for easier construction into client side shields with narrower graphics). #37 - roads layer: Add
shield_text_lengthfor the integer lenth of thereftag (with transformations) to more quickly converge towards Tilezen syntax. Can be paired with newnetworkproperty to display client-side road shields. #37 - roads layer: Add
networkwith values ofUS:I,US:USorother. Can be paired with newshield_text_lengthandrefproperties to display client-side road shields. #37 - roads layer: Add
pmap:kind_detailfor values ofservicetag forotherkind roads (eg forparking_aislefeatures) #47 - roads layer: Remove name and ref tags from low- and mid-zooms selectively by road class to improve merging and reduce file size. #47
- roads layer: Add
pierkind lines. See also newpierareas in the landuse layer. #47 - roads layer: Remove small lines at low- and mid-zooms to improve figure-ground contrast and reduce file size. #37
- transit layer: Show
runwayandtaxiwaykinds earlier (zoom 9 and 10), showpier,yard,siding, andcrossoverkinds later (zoom 13). #47 - transit layer: Show certain kinds of railway (like
light_railanddisused) later. #47 - transit layer: Indicate with
pmap:kind_detailthe value of the relevantservice,ferry, oraerialwaytags. #47 - transit layer: Add tunnel / bridge indicators with
pmap:level(same as roads layer in v2), andlayerproperty. #47 - transit layer: Add
network,ref,route, andserviceproperties. #47 - transit layer: Add
aerialway,aeroway,highspeed,man_made, andrailwayproperties (though don't use them to be v4 safe) #47 - transit layer: Remove small lines at low- and mid-zooms to improve figure-ground contrast and reduce file size. #37
- water layer: Use Natural Earth for low-zoom water polygons #47
- water layer: Use better
kindvalues to match new label points in physical points layer #47 - water layer: Add tunnel / bridge indicator with
pmap:level(same as roads layer in v2) andalkaline,intermittent, andreservoirboolean indicators #47 - water layer: Reduce small polygons to improve figure-ground contrast and reduce file size. #47
- See also the "Breaking Changes" section above...
- buildings layer: Drop all names from buildings. #47
- buildings layer: Exclude "no" features from
buildingandbuilding_part. #47 - places layer: Fix parsing of OSM
populationvalues to be comma safe. #38 - places layer: Fix parsing of OSM
populationvalues to be null safe. #22 - roads layer: Remove OSM highway features that have been "abandoned", "razed", "demolished", or "removed". #35
- transit layer: Remove OSM transit features that have been "razed", "demolished", "removed", or "proposed". #35
- Fix project path in README.md #24
- Fix Markdown in link formatting #24
- Update default Protomaps style in MapLibre JS so it shows off the new features (and any impactful changes). #37 and #47
- Update default Protomaps style in MapLibre JS so road casing layers are below other road layers #42
- Update default Protomaps style in MapLibre JS so country boundary lines are solid #45
- Update default Protomaps style in MapLibre JS with new "basic" color theme #46
- Update OpenLayers plugin example to use official olpmtiles library instead of custom library #49
- landuse layer: Allow fallback coallese of allow-listed OSM tags into
pmap:kind. #47 - roads layer: Significant refactor of the kind and other property logic.
- Add Usage section to README: #20
- Update Usage section to README for building tiles and applying code linting (formatting): #37
- Add Makefile with common build commands for easier development #47
- Add ability to build GeoFabrik named
arearegions (eg "monaco") in the CLI. #20 - Improve consistency of internal private variable names in Planetiler profile #47
- Add SonarCloud linting... #31
- Add Spotless #25
- Don't version track target, YARN, DStore, or PMTiles artifacts: #20
-
Release date: 2023-04-26.
-
Credits: @bdon
-
Initial open source release as a reimplementation of the Protomaps Basemap vector tile schema as a Planetiler schema in Java.
-
Add openlayers basemap example
-
Publish new PMTiles artifact:
-
Release date: 2020-10-26
-
Credits: @bdon
-
Last closed source version of the Protomaps Basemap vector tile schema
-
Add build script
-
Release date: 2020-03-05.
-
Credits: @bdon
-
Initiial closed source version of the Protomaps Basemap vector tile schema
NOTE: Release numbers follow Semantic Versioning. See also current project VERSION, the release notes here are for tagged releases; pre-release development changes are often not summarized until a tagged release.