forked from MapComplete/MapComplete
Featuer: add selfhosted version of pmtiles
This commit is contained in:
parent
de74a5dc08
commit
55339435d5
7 changed files with 4543 additions and 11 deletions
423
public/assets/protomaps.json
Normal file
423
public/assets/protomaps.json
Normal file
|
@ -0,0 +1,423 @@
|
|||
{
|
||||
"attribution": "<a href=\"https://www.openstreetmap.org/copyright\" target=\"_blank\">© OpenStreetMap</a>",
|
||||
"bounds": [
|
||||
-180,
|
||||
-85.0511287,
|
||||
180,
|
||||
85.0511287
|
||||
],
|
||||
"center": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"description": "Basemap layers derived from OpenStreetMap and Natural Earth, self-hosted",
|
||||
"maxzoom": 15,
|
||||
"minzoom": 0,
|
||||
"name": "Protomaps Basemap",
|
||||
"scheme": "xyz",
|
||||
"tilejson": "3.0.0",
|
||||
"tiles": [
|
||||
"https://api.protomaps.com/tiles/v4/{z}/{x}/{y}.mvt?key=e6cd5633d51d8e24"
|
||||
],
|
||||
"vector_layers": [
|
||||
{
|
||||
"fields": {
|
||||
"brk_a3": "String",
|
||||
"disputed": "Boolean",
|
||||
"kind": "String",
|
||||
"kind_detail": "Number",
|
||||
"sort_rank": "Number"
|
||||
},
|
||||
"id": "boundaries",
|
||||
"maxzoom": 15,
|
||||
"minzoom": 0
|
||||
},
|
||||
{
|
||||
"fields": {
|
||||
"addr_housenumber": "String",
|
||||
"height": "Number",
|
||||
"kind": "String",
|
||||
"kind_detail": "String",
|
||||
"layer": "Number",
|
||||
"min_height": "Number",
|
||||
"sort_rank": "Number"
|
||||
},
|
||||
"id": "buildings",
|
||||
"maxzoom": 15,
|
||||
"minzoom": 11
|
||||
},
|
||||
{
|
||||
"fields": {
|
||||
"kind": "String",
|
||||
"min_zoom": "Number",
|
||||
"name": "String",
|
||||
"name2": "String",
|
||||
"name3": "String",
|
||||
"name:ar": "String",
|
||||
"name:bg": "String",
|
||||
"name:cs": "String",
|
||||
"name:da": "String",
|
||||
"name:de": "String",
|
||||
"name:el": "String",
|
||||
"name:en": "String",
|
||||
"name:es": "String",
|
||||
"name:et": "String",
|
||||
"name:fa": "String",
|
||||
"name:fi": "String",
|
||||
"name:fr": "String",
|
||||
"name:ga": "String",
|
||||
"name:he": "String",
|
||||
"name:hi": "String",
|
||||
"name:hr": "String",
|
||||
"name:hu": "String",
|
||||
"name:id": "String",
|
||||
"name:it": "String",
|
||||
"name:ja": "String",
|
||||
"name:ko": "String",
|
||||
"name:lt": "String",
|
||||
"name:lv": "String",
|
||||
"name:mr": "String",
|
||||
"name:mt": "String",
|
||||
"name:ne": "String",
|
||||
"name:nl": "String",
|
||||
"name:no": "String",
|
||||
"name:pl": "String",
|
||||
"name:pt": "String",
|
||||
"name:ro": "String",
|
||||
"name:ru": "String",
|
||||
"name:sk": "String",
|
||||
"name:sl": "String",
|
||||
"name:sv": "String",
|
||||
"name:tr": "String",
|
||||
"name:uk": "String",
|
||||
"name:ur": "String",
|
||||
"name:vi": "String",
|
||||
"name:zh-Hans": "String",
|
||||
"name:zh-Hant": "String",
|
||||
"pgf:name2": "String",
|
||||
"pgf:name:hi": "String",
|
||||
"pgf:name:mr": "String",
|
||||
"pgf:name:ne": "String",
|
||||
"script": "String",
|
||||
"script2": "String",
|
||||
"script3": "String"
|
||||
},
|
||||
"id": "earth",
|
||||
"maxzoom": 15,
|
||||
"minzoom": 0
|
||||
},
|
||||
{
|
||||
"fields": {
|
||||
"kind": "String"
|
||||
},
|
||||
"id": "landcover",
|
||||
"maxzoom": 7,
|
||||
"minzoom": 0
|
||||
},
|
||||
{
|
||||
"fields": {
|
||||
"kind": "String",
|
||||
"sort_rank": "Number"
|
||||
},
|
||||
"id": "landuse",
|
||||
"maxzoom": 15,
|
||||
"minzoom": 2
|
||||
},
|
||||
{
|
||||
"fields": {
|
||||
"capital": "String",
|
||||
"kind": "String",
|
||||
"kind_detail": "String",
|
||||
"min_zoom": "Number",
|
||||
"name": "String",
|
||||
"name2": "String",
|
||||
"name3": "String",
|
||||
"name:ar": "String",
|
||||
"name:bg": "String",
|
||||
"name:cs": "String",
|
||||
"name:da": "String",
|
||||
"name:de": "String",
|
||||
"name:el": "String",
|
||||
"name:en": "String",
|
||||
"name:es": "String",
|
||||
"name:et": "String",
|
||||
"name:fa": "String",
|
||||
"name:fi": "String",
|
||||
"name:fr": "String",
|
||||
"name:ga": "String",
|
||||
"name:he": "String",
|
||||
"name:hi": "String",
|
||||
"name:hr": "String",
|
||||
"name:hu": "String",
|
||||
"name:id": "String",
|
||||
"name:it": "String",
|
||||
"name:ja": "String",
|
||||
"name:ko": "String",
|
||||
"name:lt": "String",
|
||||
"name:lv": "String",
|
||||
"name:mr": "String",
|
||||
"name:mt": "String",
|
||||
"name:ne": "String",
|
||||
"name:nl": "String",
|
||||
"name:no": "String",
|
||||
"name:pl": "String",
|
||||
"name:pt": "String",
|
||||
"name:ro": "String",
|
||||
"name:ru": "String",
|
||||
"name:sk": "String",
|
||||
"name:sl": "String",
|
||||
"name:sv": "String",
|
||||
"name:tr": "String",
|
||||
"name:uk": "String",
|
||||
"name:ur": "String",
|
||||
"name:vi": "String",
|
||||
"name:zh-Hans": "String",
|
||||
"name:zh-Hant": "String",
|
||||
"pgf:name": "String",
|
||||
"pgf:name2": "String",
|
||||
"pgf:name:en": "String",
|
||||
"pgf:name:hi": "String",
|
||||
"pgf:name:mr": "String",
|
||||
"pgf:name:ne": "String",
|
||||
"population": "Number",
|
||||
"population_rank": "Number",
|
||||
"ref": "String",
|
||||
"ref:FR:FANTOIR": "String",
|
||||
"ref:FR:SIREN": "String",
|
||||
"ref:RS:nkd": "String",
|
||||
"ref:USCG": "String",
|
||||
"ref:USPS": "String",
|
||||
"ref:assessors_office": "String",
|
||||
"ref:catasto": "String",
|
||||
"ref:category": "String",
|
||||
"ref:en": "String",
|
||||
"ref:lzh": "String",
|
||||
"ref:nid": "String",
|
||||
"ref:se:pts:postort": "String",
|
||||
"ref:vi": "String",
|
||||
"ref:whc": "String",
|
||||
"ref:xpcc": "String",
|
||||
"ref:zh": "String",
|
||||
"ref:zh-Hans": "String",
|
||||
"ref:zh-Hant": "String",
|
||||
"script": "String",
|
||||
"script2": "String",
|
||||
"script3": "String",
|
||||
"sort_key": "Number",
|
||||
"wikidata": "String"
|
||||
},
|
||||
"id": "places",
|
||||
"maxzoom": 15,
|
||||
"minzoom": 0
|
||||
},
|
||||
{
|
||||
"fields": {
|
||||
"elevation": "String",
|
||||
"iata": "String",
|
||||
"kind": "String",
|
||||
"kind_detail": "String",
|
||||
"min_zoom": "Number",
|
||||
"name": "String",
|
||||
"name2": "String",
|
||||
"name3": "String",
|
||||
"name:ar": "String",
|
||||
"name:bg": "String",
|
||||
"name:cs": "String",
|
||||
"name:da": "String",
|
||||
"name:de": "String",
|
||||
"name:el": "String",
|
||||
"name:en": "String",
|
||||
"name:es": "String",
|
||||
"name:et": "String",
|
||||
"name:fa": "String",
|
||||
"name:fi": "String",
|
||||
"name:fr": "String",
|
||||
"name:ga": "String",
|
||||
"name:he": "String",
|
||||
"name:hi": "String",
|
||||
"name:hr": "String",
|
||||
"name:hu": "String",
|
||||
"name:id": "String",
|
||||
"name:it": "String",
|
||||
"name:ja": "String",
|
||||
"name:ko": "String",
|
||||
"name:lt": "String",
|
||||
"name:lv": "String",
|
||||
"name:mr": "String",
|
||||
"name:mt": "String",
|
||||
"name:ne": "String",
|
||||
"name:nl": "String",
|
||||
"name:no": "String",
|
||||
"name:pl": "String",
|
||||
"name:pt": "String",
|
||||
"name:ro": "String",
|
||||
"name:ru": "String",
|
||||
"name:sk": "String",
|
||||
"name:sl": "String",
|
||||
"name:sv": "String",
|
||||
"name:tr": "String",
|
||||
"name:uk": "String",
|
||||
"name:ur": "String",
|
||||
"name:vi": "String",
|
||||
"name:zh-Hans": "String",
|
||||
"name:zh-Hant": "String",
|
||||
"pgf:name": "String",
|
||||
"pgf:name2": "String",
|
||||
"pgf:name3": "String",
|
||||
"pgf:name:en": "String",
|
||||
"pgf:name:he": "String",
|
||||
"pgf:name:hi": "String",
|
||||
"pgf:name:mr": "String",
|
||||
"pgf:name:ne": "String",
|
||||
"script": "String",
|
||||
"script2": "String",
|
||||
"script3": "String"
|
||||
},
|
||||
"id": "pois",
|
||||
"maxzoom": 15,
|
||||
"minzoom": 5
|
||||
},
|
||||
{
|
||||
"fields": {
|
||||
"is_bridge": "Boolean",
|
||||
"is_link": "Boolean",
|
||||
"is_tunnel": "Boolean",
|
||||
"kind": "String",
|
||||
"kind_detail": "String",
|
||||
"min_zoom": "Number",
|
||||
"name": "String",
|
||||
"name2": "String",
|
||||
"name3": "String",
|
||||
"name:ar": "String",
|
||||
"name:bg": "String",
|
||||
"name:cs": "String",
|
||||
"name:da": "String",
|
||||
"name:de": "String",
|
||||
"name:el": "String",
|
||||
"name:en": "String",
|
||||
"name:es": "String",
|
||||
"name:et": "String",
|
||||
"name:fa": "String",
|
||||
"name:fi": "String",
|
||||
"name:fr": "String",
|
||||
"name:ga": "String",
|
||||
"name:he": "String",
|
||||
"name:hi": "String",
|
||||
"name:hr": "String",
|
||||
"name:hu": "String",
|
||||
"name:id": "String",
|
||||
"name:it": "String",
|
||||
"name:ja": "String",
|
||||
"name:ko": "String",
|
||||
"name:lt": "String",
|
||||
"name:lv": "String",
|
||||
"name:mr": "String",
|
||||
"name:mt": "String",
|
||||
"name:ne": "String",
|
||||
"name:nl": "String",
|
||||
"name:no": "String",
|
||||
"name:pl": "String",
|
||||
"name:pt": "String",
|
||||
"name:ro": "String",
|
||||
"name:ru": "String",
|
||||
"name:sk": "String",
|
||||
"name:sl": "String",
|
||||
"name:sv": "String",
|
||||
"name:tr": "String",
|
||||
"name:uk": "String",
|
||||
"name:ur": "String",
|
||||
"name:vi": "String",
|
||||
"name:zh-Hans": "String",
|
||||
"name:zh-Hant": "String",
|
||||
"network": "String",
|
||||
"oneway": "String",
|
||||
"pgf:name": "String",
|
||||
"pgf:name2": "String",
|
||||
"pgf:name:en": "String",
|
||||
"pgf:name:hi": "String",
|
||||
"pgf:name:mr": "String",
|
||||
"pgf:name:ne": "String",
|
||||
"ref": "String",
|
||||
"route": "String",
|
||||
"script": "String",
|
||||
"script2": "String",
|
||||
"script3": "String",
|
||||
"service": "String",
|
||||
"shield_text_length": "Number",
|
||||
"sort_rank": "Number"
|
||||
},
|
||||
"id": "roads",
|
||||
"maxzoom": 15,
|
||||
"minzoom": 3
|
||||
},
|
||||
{
|
||||
"fields": {
|
||||
"bridge": "String",
|
||||
"kind": "String",
|
||||
"kind_detail": "String",
|
||||
"layer": "Number",
|
||||
"min_zoom": "Number",
|
||||
"name": "String",
|
||||
"name2": "String",
|
||||
"name3": "String",
|
||||
"name:ar": "String",
|
||||
"name:bg": "String",
|
||||
"name:cs": "String",
|
||||
"name:da": "String",
|
||||
"name:de": "String",
|
||||
"name:el": "String",
|
||||
"name:en": "String",
|
||||
"name:es": "String",
|
||||
"name:et": "String",
|
||||
"name:fa": "String",
|
||||
"name:fi": "String",
|
||||
"name:fr": "String",
|
||||
"name:ga": "String",
|
||||
"name:he": "String",
|
||||
"name:hi": "String",
|
||||
"name:hr": "String",
|
||||
"name:hu": "String",
|
||||
"name:id": "String",
|
||||
"name:it": "String",
|
||||
"name:ja": "String",
|
||||
"name:ko": "String",
|
||||
"name:lt": "String",
|
||||
"name:lv": "String",
|
||||
"name:mr": "String",
|
||||
"name:mt": "String",
|
||||
"name:ne": "String",
|
||||
"name:nl": "String",
|
||||
"name:no": "String",
|
||||
"name:pl": "String",
|
||||
"name:pt": "String",
|
||||
"name:ro": "String",
|
||||
"name:ru": "String",
|
||||
"name:sk": "String",
|
||||
"name:sl": "String",
|
||||
"name:sv": "String",
|
||||
"name:tr": "String",
|
||||
"name:uk": "String",
|
||||
"name:ur": "String",
|
||||
"name:vi": "String",
|
||||
"name:zh-Hans": "String",
|
||||
"name:zh-Hant": "String",
|
||||
"pgf:name": "String",
|
||||
"pgf:name2": "String",
|
||||
"pgf:name:en": "String",
|
||||
"pgf:name:hi": "String",
|
||||
"pgf:name:mr": "String",
|
||||
"pgf:name:ne": "String",
|
||||
"script": "String",
|
||||
"script2": "String",
|
||||
"script3": "String",
|
||||
"sort_rank": "Number",
|
||||
"tunnel": "String"
|
||||
},
|
||||
"id": "water",
|
||||
"maxzoom": 15,
|
||||
"minzoom": 0
|
||||
}
|
||||
],
|
||||
"version": "4.11.0"
|
||||
}
|
4085
public/assets/sunny-hosted.json
Normal file
4085
public/assets/sunny-hosted.json
Normal file
File diff suppressed because it is too large
Load diff
|
@ -7,9 +7,7 @@
|
|||
"protomaps": {
|
||||
"attribution": "<a href=\"https://github.com/protomaps/basemaps\">Protomaps</a> © <a href=\"https://openstreetmap.org\">OpenStreetMap</a>",
|
||||
"type": "vector",
|
||||
"tiles": [
|
||||
"https://api.protomaps.com/tiles/v4/{z}/{x}/{y}.mvt?key=2af8b969a9e8b692"
|
||||
],
|
||||
"url": "pmtiles://https://cache.mapcomplete.org/planet-latest.pmtiles",
|
||||
"maxzoom": 15
|
||||
}
|
||||
},
|
||||
|
|
|
@ -6,9 +6,7 @@
|
|||
"protomaps": {
|
||||
"attribution": "<a href=\"https://github.com/protomaps/basemaps\">Protomaps</a> © <a href=\"https://openstreetmap.org\">OpenStreetMap</a>",
|
||||
"type": "vector",
|
||||
"tiles": [
|
||||
"https://api.protomaps.com/tiles/v4/{z}/{x}/{y}.mvt?key=2af8b969a9e8b692"
|
||||
],
|
||||
"url": "pmtiles://https://cache.mapcomplete.org/planet-latest.pmtiles",
|
||||
"maxzoom": 15
|
||||
}
|
||||
},
|
||||
|
|
|
@ -16,8 +16,21 @@ export class GenerateSunnyUnlabeled extends Script {
|
|||
writeFileSync("public/assets/sunny-unlabeled.json", JSON.stringify(unlabeled, null, " "))
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a variation hosted by api.protomaps
|
||||
*/
|
||||
generateHosted() {
|
||||
const tilesource = "https://api.protomaps.com/tiles/v4/{z}/{x}/{y}.mvt?key=2af8b969a9e8b692"
|
||||
const hosted = { "#": "AUTOMATICALLY GENERATED! Do not edit.", ...sunny }
|
||||
delete hosted.sources.protomaps.url
|
||||
hosted.sources.protomaps["tiles"] = [tilesource]
|
||||
writeFileSync("public/assets/sunny-hosted.json", JSON.stringify(hosted, null, " "))
|
||||
|
||||
}
|
||||
|
||||
async main(args: string[]): Promise<void> {
|
||||
this.generateUnlabeled()
|
||||
this.generateHosted()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -70,12 +70,13 @@ export class AvailableRasterLayers {
|
|||
throw "Detected invalid global layer with invalid id"
|
||||
}
|
||||
return joined.map(
|
||||
(properties) =>
|
||||
<RasterLayerPolygon>{
|
||||
(properties) => {
|
||||
return <RasterLayerPolygon>{
|
||||
type: "Feature",
|
||||
properties,
|
||||
geometry: BBox.global.asGeometry(),
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -1,14 +1,28 @@
|
|||
{
|
||||
"layers": [
|
||||
{
|
||||
"url": "pmtiles://https://api.protomaps.com/tiles/v4.json?key=2af8b969a9e8b692",
|
||||
"style": "assets/sunny.json",
|
||||
"style": "assets/sunny-hosted.json",
|
||||
"connect-src": [
|
||||
"https://protomaps.github.io"
|
||||
],
|
||||
"best": true,
|
||||
"id": "protomaps.sunny",
|
||||
"name": "Protomaps Sunny",
|
||||
"name": "Protomaps Sunny (Hosted by Protomaps)",
|
||||
"type": "vector",
|
||||
"category": "osmbasedmap",
|
||||
"attribution": {
|
||||
"text": "Protomaps",
|
||||
"url": "https://protomaps.com/"
|
||||
}
|
||||
},
|
||||
{
|
||||
"style": "assets/sunny.json",
|
||||
"connect-src": [
|
||||
"https://protomaps.github.io"
|
||||
],
|
||||
"best": true,
|
||||
"id": "protomaps.sunny-self",
|
||||
"name": "Protomaps Sunny (Hosted by pietervdvn)",
|
||||
"type": "vector",
|
||||
"category": "osmbasedmap",
|
||||
"attribution": {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue