Inline AspectedRouting (package didn't want to build), update docs, update sharp dependency to the latest version
This commit is contained in:
parent
f8b7c1061a
commit
7c03a185ac
11 changed files with 1367 additions and 152 deletions
|
@ -141,6 +141,7 @@ Some advanced functions are available on **feat** as well:
|
||||||
- overlapWith
|
- overlapWith
|
||||||
- closest
|
- closest
|
||||||
- memberships
|
- memberships
|
||||||
|
- score
|
||||||
|
|
||||||
### distanceTo
|
### distanceTo
|
||||||
|
|
||||||
|
@ -168,4 +169,12 @@ Some advanced functions are available on **feat** as well:
|
||||||
For example: `_part_of_walking_routes=feat.memberships().map(r => r.relation.tags.name).join(';')`
|
For example: `_part_of_walking_routes=feat.memberships().map(r => r.relation.tags.name).join(';')`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### score
|
||||||
|
|
||||||
|
Given the path of an aspected routing json file, will calculate the score. This score is wrapped in a UIEventSource, so for further calculations, use `.map(score => ...)`
|
||||||
|
|
||||||
|
For example: `_comfort_score=feat.score('https://raw.githubusercontent.com/pietervdvn/AspectedRouting/master/Examples/bicycle/aspects/bicycle.comfort.json')`
|
||||||
|
|
||||||
|
0. path
|
||||||
Generated from SimpleMetaTagger, ExtraFunction
|
Generated from SimpleMetaTagger, ExtraFunction
|
111
Docs/TagInfo/mapcomplete_artwork.json
Normal file
111
Docs/TagInfo/mapcomplete_artwork.json
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
{
|
||||||
|
"data_format": 1,
|
||||||
|
"project": {
|
||||||
|
"name": "MapComplete Open Artwork Map",
|
||||||
|
"description": "Welcome to Open Artwork Map, a map of statues, busts, grafittis and other artwork all over the world",
|
||||||
|
"project_url": "https://mapcomplete.osm.be/artwork",
|
||||||
|
"doc_url": "https://github.com/pietervdvn/MapComplete/tree/master/assets/themes/",
|
||||||
|
"icon_url": "https://mapcomplete.osm.be/assets/themes/artwork/artwork.svg",
|
||||||
|
"contact_name": "Pieter Vander Vennet, MapComplete",
|
||||||
|
"contact_email": "pietervdvn@posteo.net"
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
{
|
||||||
|
"key": "tourism",
|
||||||
|
"description": "The MapComplete theme Open Artwork Map has a layer Artworks showing features with this tag",
|
||||||
|
"value": "artwork"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "image",
|
||||||
|
"description": "The layer 'Artworks allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "mapillary",
|
||||||
|
"description": "The layer 'Artworks allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "wikidata",
|
||||||
|
"description": "The layer 'Artworks allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "wikipedia",
|
||||||
|
"description": "The layer 'Artworks allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "artwork_type",
|
||||||
|
"description": "Layer 'Artworks' shows and asks freeform values for key 'artwork_type' (in the MapComplete.osm.be theme 'Open Artwork Map')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "artwork_type",
|
||||||
|
"description": "Layer 'Artworks' shows artwork_type=architecture with a fixed text, namely 'Architecture' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Artwork Map')",
|
||||||
|
"value": "architecture"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "artwork_type",
|
||||||
|
"description": "Layer 'Artworks' shows artwork_type=mural with a fixed text, namely 'Mural' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Artwork Map')",
|
||||||
|
"value": "mural"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "artwork_type",
|
||||||
|
"description": "Layer 'Artworks' shows artwork_type=painting with a fixed text, namely 'Painting' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Artwork Map')",
|
||||||
|
"value": "painting"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "artwork_type",
|
||||||
|
"description": "Layer 'Artworks' shows artwork_type=sculpture with a fixed text, namely 'Sculpture' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Artwork Map')",
|
||||||
|
"value": "sculpture"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "artwork_type",
|
||||||
|
"description": "Layer 'Artworks' shows artwork_type=statue with a fixed text, namely 'Statue' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Artwork Map')",
|
||||||
|
"value": "statue"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "artwork_type",
|
||||||
|
"description": "Layer 'Artworks' shows artwork_type=bust with a fixed text, namely 'Bust' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Artwork Map')",
|
||||||
|
"value": "bust"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "artwork_type",
|
||||||
|
"description": "Layer 'Artworks' shows artwork_type=stone with a fixed text, namely 'Stone' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Artwork Map')",
|
||||||
|
"value": "stone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "artwork_type",
|
||||||
|
"description": "Layer 'Artworks' shows artwork_type=installation with a fixed text, namely 'Installation' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Artwork Map')",
|
||||||
|
"value": "installation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "artwork_type",
|
||||||
|
"description": "Layer 'Artworks' shows artwork_type=graffiti with a fixed text, namely 'Graffiti' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Artwork Map')",
|
||||||
|
"value": "graffiti"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "artwork_type",
|
||||||
|
"description": "Layer 'Artworks' shows artwork_type=relief with a fixed text, namely 'Relief' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Artwork Map')",
|
||||||
|
"value": "relief"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "artwork_type",
|
||||||
|
"description": "Layer 'Artworks' shows artwork_type=azulejo with a fixed text, namely 'Azulejo (Spanish decorative tilework)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Artwork Map')",
|
||||||
|
"value": "azulejo"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "artwork_type",
|
||||||
|
"description": "Layer 'Artworks' shows artwork_type=tilework with a fixed text, namely 'Tilework' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Open Artwork Map')",
|
||||||
|
"value": "tilework"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "artist_name",
|
||||||
|
"description": "Layer 'Artworks' shows and asks freeform values for key 'artist_name' (in the MapComplete.osm.be theme 'Open Artwork Map')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "website",
|
||||||
|
"description": "Layer 'Artworks' shows and asks freeform values for key 'website' (in the MapComplete.osm.be theme 'Open Artwork Map')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "wikidata",
|
||||||
|
"description": "Layer 'Artworks' shows and asks freeform values for key 'wikidata' (in the MapComplete.osm.be theme 'Open Artwork Map')"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -5,7 +5,7 @@
|
||||||
"description": "A bicycle library is a place where bicycles can be lent, often for a small yearly fee",
|
"description": "A bicycle library is a place where bicycles can be lent, often for a small yearly fee",
|
||||||
"project_url": "https://mapcomplete.osm.be/bicyclelib",
|
"project_url": "https://mapcomplete.osm.be/bicyclelib",
|
||||||
"doc_url": "https://github.com/pietervdvn/MapComplete/tree/master/assets/themes/",
|
"doc_url": "https://github.com/pietervdvn/MapComplete/tree/master/assets/themes/",
|
||||||
"icon_url": "https://mapcomplete.osm.be/assets/themes/bicycle_library/logo.svg",
|
"icon_url": "https://mapcomplete.osm.be/assets/themes/bicyclelib/logo.svg",
|
||||||
"contact_name": "Pieter Vander Vennet, MapComplete",
|
"contact_name": "Pieter Vander Vennet, MapComplete",
|
||||||
"contact_email": "pietervdvn@posteo.net"
|
"contact_email": "pietervdvn@posteo.net"
|
||||||
},
|
},
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
"description": "Find sites to spend the night with your camper",
|
"description": "Find sites to spend the night with your camper",
|
||||||
"project_url": "https://mapcomplete.osm.be/campersite",
|
"project_url": "https://mapcomplete.osm.be/campersite",
|
||||||
"doc_url": "https://github.com/pietervdvn/MapComplete/tree/master/assets/themes/",
|
"doc_url": "https://github.com/pietervdvn/MapComplete/tree/master/assets/themes/",
|
||||||
"icon_url": "https://mapcomplete.osm.be/assets/themes/campersites/caravan.svg",
|
"icon_url": "https://mapcomplete.osm.be/assets/themes/campersite/caravan.svg",
|
||||||
"contact_name": "Pieter Vander Vennet, joost schouppe",
|
"contact_name": "Pieter Vander Vennet, joost schouppe",
|
||||||
"contact_email": "pietervdvn@posteo.net"
|
"contact_email": "pietervdvn@posteo.net"
|
||||||
},
|
},
|
||||||
|
|
707
Docs/TagInfo/mapcomplete_cycle_infra.json
Normal file
707
Docs/TagInfo/mapcomplete_cycle_infra.json
Normal file
|
@ -0,0 +1,707 @@
|
||||||
|
{
|
||||||
|
"data_format": 1,
|
||||||
|
"project": {
|
||||||
|
"name": "MapComplete Bicycle infrastructure",
|
||||||
|
"description": "A map where you can view and edit things related to the bicycle infrastructure.",
|
||||||
|
"project_url": "https://mapcomplete.osm.be/cycle_infra",
|
||||||
|
"doc_url": "https://github.com/pietervdvn/MapComplete/tree/master/assets/themes/",
|
||||||
|
"icon_url": "https://mapcomplete.osm.be/assets/themes/cycle_infra/cycle-infra.svg",
|
||||||
|
"contact_name": "Pieter Vander Vennet, ",
|
||||||
|
"contact_email": "pietervdvn@posteo.net"
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
{
|
||||||
|
"key": "highway",
|
||||||
|
"description": "The MapComplete theme Bicycle infrastructure has a layer Cycleways showing features with this tag",
|
||||||
|
"value": "cycleway"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway",
|
||||||
|
"description": "The MapComplete theme Bicycle infrastructure has a layer Cycleways showing features with this tag",
|
||||||
|
"value": "lane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway",
|
||||||
|
"description": "The MapComplete theme Bicycle infrastructure has a layer Cycleways showing features with this tag",
|
||||||
|
"value": "shared_lane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway",
|
||||||
|
"description": "The MapComplete theme Bicycle infrastructure has a layer Cycleways showing features with this tag",
|
||||||
|
"value": "track"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "The MapComplete theme Bicycle infrastructure has a layer Cycleways showing features with this tag",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "highway",
|
||||||
|
"description": "The MapComplete theme Bicycle infrastructure has a layer Cycleways showing features with this tag",
|
||||||
|
"value": "path"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "bicycle",
|
||||||
|
"description": "The MapComplete theme Bicycle infrastructure has a layer Cycleways showing features with this tag",
|
||||||
|
"value": "designated"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway=shared_lane with a fixed text, namely 'There is a shared lane' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "shared_lane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway=lane with a fixed text, namely 'There is a lane next to the road (seperated with paint)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "lane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway=track with a fixed text, namely 'There is a track, but no cycleway drawn seperately from this road on the map.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "track"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway=seperate with a fixed text, namely 'There is a seperately drawn cycleway' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "seperate"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway=no with a fixed text, namely 'There is no cycleway' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway=no with a fixed text, namely 'There is no cycleway' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "lit",
|
||||||
|
"description": "Layer 'Cycleways' shows lit=yes with a fixed text, namely 'This street is lit' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "lit",
|
||||||
|
"description": "Layer 'Cycleways' shows lit=no with a fixed text, namely 'This road is not lit' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "lit",
|
||||||
|
"description": "Layer 'Cycleways' shows lit=sunset-sunrise with a fixed text, namely 'This road is lit at night' (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "sunset-sunrise"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "lit",
|
||||||
|
"description": "Layer 'Cycleways' shows lit=24/7 with a fixed text, namely 'This road is lit 24/7' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "24/7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "Layer 'Cycleways' shows cyclestreet=yes with a fixed text, namely 'This is a cyclestreet, and a 30km/h zone.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "Layer 'Cycleways' shows cyclestreet=yes with a fixed text, namely 'This is a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "Layer 'Cycleways' shows cyclestreet= with a fixed text, namely 'This is not a cyclestreet.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure') Picking this answer will delete the key cyclestreet.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "maxspeed",
|
||||||
|
"description": "Layer 'Cycleways' shows and asks freeform values for key 'maxspeed' (in the MapComplete.osm.be theme 'Bicycle infrastructure')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "maxspeed",
|
||||||
|
"description": "Layer 'Cycleways' shows maxspeed=20 with a fixed text, namely 'The maximum speed is 20 km/h' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "20"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "maxspeed",
|
||||||
|
"description": "Layer 'Cycleways' shows maxspeed=30 with a fixed text, namely 'The maximum speed is 30 km/h' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "30"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "maxspeed",
|
||||||
|
"description": "Layer 'Cycleways' shows maxspeed=50 with a fixed text, namely 'The maximum speed is 50 km/h' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "50"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "maxspeed",
|
||||||
|
"description": "Layer 'Cycleways' shows maxspeed=70 with a fixed text, namely 'The maximum speed is 70 km/h' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "70"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "maxspeed",
|
||||||
|
"description": "Layer 'Cycleways' shows maxspeed=90 with a fixed text, namely 'The maximum speed is 90 km/h' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "90"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:surface",
|
||||||
|
"description": "Layer 'Cycleways' shows and asks freeform values for key 'cycleway:surface' (in the MapComplete.osm.be theme 'Bicycle infrastructure')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:surface",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:surface=wood with a fixed text, namely 'This cycleway is made of wood' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "wood"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:surface",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:surface=concrete with a fixed text, namely 'This cycleway is made of concrete' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "concrete"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:surface",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:surface=cobblestone with a fixed text, namely 'This cycleway is made of cobblestone' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "cobblestone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:surface",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:surface=asphalt with a fixed text, namely 'This cycleway is made of asphalt' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "asphalt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:surface",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:surface=paved with a fixed text, namely 'This cycleway is paved' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "paved"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:smoothness",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:smoothness=excellent with a fixed text, namely 'Usable for thin rollers: rollerblade, skateboard' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "excellent"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:smoothness",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:smoothness=good with a fixed text, namely 'Usable for thin wheels: racing bike' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "good"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:smoothness",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:smoothness=intermediate with a fixed text, namely 'Usable for normal wheels: city bike, wheelchair, scooter' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "intermediate"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:smoothness",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:smoothness=bad with a fixed text, namely 'Usable for robust wheels: trekking bike, car, rickshaw' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "bad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:smoothness",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:smoothness=very_bad with a fixed text, namely 'Usable for vehicles with high clearance: light duty off-road vehicle' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "very_bad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:smoothness",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:smoothness=horrible with a fixed text, namely 'Usable for off-road vehicles: heavy duty off-road vehicle' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "horrible"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:smoothness",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:smoothness=very_horrible with a fixed text, namely 'Usable for specialized off-road vehicles: tractor, ATV' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "very_horrible"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:smoothness",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:smoothness=impassable with a fixed text, namely 'Impassable / No wheeled vehicle' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "impassable"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "surface",
|
||||||
|
"description": "Layer 'Cycleways' shows and asks freeform values for key 'surface' (in the MapComplete.osm.be theme 'Bicycle infrastructure')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "surface",
|
||||||
|
"description": "Layer 'Cycleways' shows surface=wood with a fixed text, namely 'This street is made of wood' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "wood"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "surface",
|
||||||
|
"description": "Layer 'Cycleways' shows surface=concrete with a fixed text, namely 'This street is made of concrete' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "concrete"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "surface",
|
||||||
|
"description": "Layer 'Cycleways' shows surface=cobblestone with a fixed text, namely 'This street is made of cobblestone' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "cobblestone"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "surface",
|
||||||
|
"description": "Layer 'Cycleways' shows surface=asphalt with a fixed text, namely 'This street is made of asphalt' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "asphalt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "surface",
|
||||||
|
"description": "Layer 'Cycleways' shows surface=paved with a fixed text, namely 'This street is paved' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "paved"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "smoothness",
|
||||||
|
"description": "Layer 'Cycleways' shows smoothness=excellent with a fixed text, namely 'Usable for thin rollers: rollerblade, skateboard' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "excellent"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "smoothness",
|
||||||
|
"description": "Layer 'Cycleways' shows smoothness=good with a fixed text, namely 'Usable for thin wheels: racing bike' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "good"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "smoothness",
|
||||||
|
"description": "Layer 'Cycleways' shows smoothness=intermediate with a fixed text, namely 'Usable for normal wheels: city bike, wheelchair, scooter' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "intermediate"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "smoothness",
|
||||||
|
"description": "Layer 'Cycleways' shows smoothness=bad with a fixed text, namely 'Usable for robust wheels: trekking bike, car, rickshaw' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "bad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "smoothness",
|
||||||
|
"description": "Layer 'Cycleways' shows smoothness=very_bad with a fixed text, namely 'Usable for vehicles with high clearance: light duty off-road vehicle' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "very_bad"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "smoothness",
|
||||||
|
"description": "Layer 'Cycleways' shows smoothness=horrible with a fixed text, namely 'Usable for off-road vehicles: heavy duty off-road vehicle' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "horrible"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "smoothness",
|
||||||
|
"description": "Layer 'Cycleways' shows smoothness=very_horrible with a fixed text, namely 'Usable for specialized off-road vehicles: tractor, ATV' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "very_horrible"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "smoothness",
|
||||||
|
"description": "Layer 'Cycleways' shows smoothness=impassable with a fixed text, namely 'Impassable / No wheeled vehicle' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "impassable"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "width:carriageway",
|
||||||
|
"description": "Layer 'Cycleways' shows and asks freeform values for key 'width:carriageway' (in the MapComplete.osm.be theme 'Bicycle infrastructure')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:traffic_sign=BE:D7 with a fixed text, namely 'Compulsory cycleway <img src='./assets/themes/cycle_infra/Belgian_road_sign_D07.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "BE:D7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:traffic_sign~^BE:D7;.*$ with a fixed text, namely 'Compulsory cycleway (with supplementary sign)<img src='./assets/themes/cycle_infra/Belgian_road_sign_D07.svg' style='height: 3em'> ' (in the MapComplete.osm.be theme 'Bicycle infrastructure')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:traffic_sign=BE:D9 with a fixed text, namely 'Segregated foot/cycleway <img src='./assets/themes/cycle_infra/Belgian_road_sign_D09.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "BE:D9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:traffic_sign=BE:D10 with a fixed text, namely 'Unsegregated foot/cycleway <img src='./assets/themes/cycle_infra/Belgian_road_sign_D10.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "BE:D10"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:traffic_sign=none with a fixed text, namely 'No traffic sign present' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "none"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows traffic_sign=BE:D7 with a fixed text, namely 'Compulsory cycleway <img src='./assets/themes/cycle_infra/Belgian_road_sign_D07.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "BE:D7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows traffic_sign~^BE:D7;.*$ with a fixed text, namely 'Compulsory cycleway (with supplementary sign)<img src='./assets/themes/cycle_infra/Belgian_road_sign_D07.svg' style='height: 3em'> ' (in the MapComplete.osm.be theme 'Bicycle infrastructure')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows traffic_sign=BE:D9 with a fixed text, namely 'Segregated foot/cycleway <img src='./assets/themes/cycle_infra/Belgian_road_sign_D09.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "BE:D9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows traffic_sign=BE:D10 with a fixed text, namely 'Unsegregated foot/cycleway <img src='./assets/themes/cycle_infra/Belgian_road_sign_D10.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "BE:D10"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows traffic_sign=none with a fixed text, namely 'No traffic sign present' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "none"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:traffic_sign=BE:D7;BE:M6 with a fixed text, namely '<img src='./assets/themes/cycle_infra/Belgian_traffic_sign_M6.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "BE:D7;BE:M6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:traffic_sign=BE:D7;BE:M13 with a fixed text, namely '<img src='./assets/themes/cycle_infra/Belgian_traffic_sign_M13.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "BE:D7;BE:M13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:traffic_sign=BE:D7;BE:M14 with a fixed text, namely '<img src='./assets/themes/cycle_infra/Belgian_traffic_sign_M14.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "BE:D7;BE:M14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:traffic_sign=BE:D7;BE:M7 with a fixed text, namely '<img src='./assets/themes/cycle_infra/Belgian_traffic_sign_M7.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "BE:D7;BE:M7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:traffic_sign=BE:D7;BE:M15 with a fixed text, namely '<img src='./assets/themes/cycle_infra/Belgian_traffic_sign_M15.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "BE:D7;BE:M15"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:traffic_sign=BE:D7;BE:M16 with a fixed text, namely '<img src='./assets/themes/cycle_infra/Belgian_traffic_sign_M16.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "BE:D7;BE:M16"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:traffic_sign:supplementary",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:traffic_sign:supplementary=none with a fixed text, namely 'No supplementary traffic sign present' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "none"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows traffic_sign=BE:D7;BE:M6 with a fixed text, namely '<img src='./assets/themes/cycle_infra/Belgian_traffic_sign_M6.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "BE:D7;BE:M6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows traffic_sign=BE:D7;BE:M13 with a fixed text, namely '<img src='./assets/themes/cycle_infra/Belgian_traffic_sign_M13.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "BE:D7;BE:M13"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows traffic_sign=BE:D7;BE:M14 with a fixed text, namely '<img src='./assets/themes/cycle_infra/Belgian_traffic_sign_M14.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "BE:D7;BE:M14"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows traffic_sign=BE:D7;BE:M7 with a fixed text, namely '<img src='./assets/themes/cycle_infra/Belgian_traffic_sign_M7.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "BE:D7;BE:M7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": ":traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows :traffic_sign=BE:D7;BE:M15 with a fixed text, namely '<img src='./assets/themes/cycle_infra/Belgian_traffic_sign_M15.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "BE:D7;BE:M15"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "traffic_sign",
|
||||||
|
"description": "Layer 'Cycleways' shows traffic_sign=BE:D7;BE:M16 with a fixed text, namely '<img src='./assets/themes/cycle_infra/Belgian_traffic_sign_M16.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "BE:D7;BE:M16"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "traffic_sign:supplementary",
|
||||||
|
"description": "Layer 'Cycleways' shows traffic_sign:supplementary=none with a fixed text, namely 'No supplementary traffic sign present' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "none"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:buffer",
|
||||||
|
"description": "Layer 'Cycleways' shows and asks freeform values for key 'cycleway:buffer' (in the MapComplete.osm.be theme 'Bicycle infrastructure')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:seperation",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:seperation=dashed_line with a fixed text, namely 'This cycleway is seperated by a dashed line' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "dashed_line"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:seperation",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:seperation=solid_line with a fixed text, namely 'This cycleway is seperated by a solid line' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "solid_line"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:seperation",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:seperation=parking_lane with a fixed text, namely 'This cycleway is seperated by a parking lane' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "parking_lane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway:seperation",
|
||||||
|
"description": "Layer 'Cycleways' shows cycleway:seperation=kerb with a fixed text, namely 'This cycleway is seperated by a kerb' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "kerb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "seperation",
|
||||||
|
"description": "Layer 'Cycleways' shows seperation=dashed_line with a fixed text, namely 'This cycleway is seperated by a dashed line' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "dashed_line"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "seperation",
|
||||||
|
"description": "Layer 'Cycleways' shows seperation=solid_line with a fixed text, namely 'This cycleway is seperated by a solid line' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "solid_line"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "seperation",
|
||||||
|
"description": "Layer 'Cycleways' shows seperation=parking_lane with a fixed text, namely 'This cycleway is seperated by a parking lane' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "parking_lane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "seperation",
|
||||||
|
"description": "Layer 'Cycleways' shows seperation=kerb with a fixed text, namely 'This cycleway is seperated by a kerb' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "kerb"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "highway",
|
||||||
|
"description": "The MapComplete theme Bicycle infrastructure has a layer All streets showing features with this tag",
|
||||||
|
"value": "residential"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "highway",
|
||||||
|
"description": "The MapComplete theme Bicycle infrastructure has a layer All streets showing features with this tag",
|
||||||
|
"value": "tertiary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "highway",
|
||||||
|
"description": "The MapComplete theme Bicycle infrastructure has a layer All streets showing features with this tag",
|
||||||
|
"value": "unclassified"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "highway",
|
||||||
|
"description": "The MapComplete theme Bicycle infrastructure has a layer All streets showing features with this tag",
|
||||||
|
"value": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "highway",
|
||||||
|
"description": "The MapComplete theme Bicycle infrastructure has a layer All streets showing features with this tag",
|
||||||
|
"value": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway",
|
||||||
|
"description": "Layer 'All streets' shows and asks freeform values for key 'cycleway' (in the MapComplete.osm.be theme 'Bicycle infrastructure')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway",
|
||||||
|
"description": "Layer 'All streets' shows cycleway=shared_lane with a fixed text, namely 'There is a shared lane' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "shared_lane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway",
|
||||||
|
"description": "Layer 'All streets' shows cycleway=lane with a fixed text, namely 'There is a lane next to the road (seperated with paint)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "lane"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway",
|
||||||
|
"description": "Layer 'All streets' shows cycleway=track with a fixed text, namely 'There is a track, but no cycleway drawn seperately from this road on the map.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "track"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway",
|
||||||
|
"description": "Layer 'All streets' shows cycleway=seperate with a fixed text, namely 'There is a seperately drawn cycleway' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "seperate"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway",
|
||||||
|
"description": "Layer 'All streets' shows cycleway= with a fixed text, namely 'There is no cycleway known here' (in the MapComplete.osm.be theme 'Bicycle infrastructure') Picking this answer will delete the key cycleway.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway",
|
||||||
|
"description": "Layer 'All streets' shows cycleway=no with a fixed text, namely 'There is no cycleway' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycleway",
|
||||||
|
"description": "Layer 'All streets' shows cycleway=no with a fixed text, namely 'There is no cycleway' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "Layer 'All streets' shows cyclestreet=yes with a fixed text, namely 'This is a cyclestreet, and a 30km/h zone.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "Layer 'All streets' shows cyclestreet=yes with a fixed text, namely 'This is a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "Layer 'All streets' shows cyclestreet= with a fixed text, namely 'This is not a cyclestreet.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure') Picking this answer will delete the key cyclestreet.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "barrier",
|
||||||
|
"description": "The MapComplete theme Bicycle infrastructure has a layer Barriers showing features with this tag",
|
||||||
|
"value": "bollard"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "barrier",
|
||||||
|
"description": "The MapComplete theme Bicycle infrastructure has a layer Barriers showing features with this tag",
|
||||||
|
"value": "cycle_barrier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "bicycle",
|
||||||
|
"description": "Layer 'Barriers' shows bicycle=yes with a fixed text, namely 'A cyclist can go past this.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "bicycle",
|
||||||
|
"description": "Layer 'Barriers' shows bicycle=no with a fixed text, namely 'A cyclist can not go past this.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "bollard",
|
||||||
|
"description": "Layer 'Barriers' shows bollard=removable with a fixed text, namely 'Removable bollard' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "removable"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "bollard",
|
||||||
|
"description": "Layer 'Barriers' shows bollard=fixed with a fixed text, namely 'Fixed bollard' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "fixed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "bollard",
|
||||||
|
"description": "Layer 'Barriers' shows bollard=foldable with a fixed text, namely 'Bollard that can be folded down' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "foldable"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "bollard",
|
||||||
|
"description": "Layer 'Barriers' shows bollard=flexible with a fixed text, namely 'Flexible bollard, usually plastic' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "flexible"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "bollard",
|
||||||
|
"description": "Layer 'Barriers' shows bollard=rising with a fixed text, namely 'Rising bollard' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "rising"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycle_barrier:type",
|
||||||
|
"description": "Layer 'Barriers' shows cycle_barrier:type=single with a fixed text, namely 'Single, just two barriers with a space inbetween <img src='./assets/themes/cycle_infra/Cycle_barrier_single.png' style='width:8em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "single"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycle_barrier:type",
|
||||||
|
"description": "Layer 'Barriers' shows cycle_barrier:type=double with a fixed text, namely 'Double, two barriers behind each other <img src='./assets/themes/cycle_infra/Cycle_barrier_double.png' style='width:8em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "double"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycle_barrier:type",
|
||||||
|
"description": "Layer 'Barriers' shows cycle_barrier:type=triple with a fixed text, namely 'Triple, three barriers behind each other <img src='./assets/themes/cycle_infra/Cycle_barrier_triple.png' style='width:8em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "triple"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cycle_barrier:type",
|
||||||
|
"description": "Layer 'Barriers' shows cycle_barrier:type=squeeze with a fixed text, namely 'Squeeze gate, gap is smaller at top, than at the bottom <img src='./assets/themes/cycle_infra/Cycle_barrier_squeeze.png' style='width:8em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "squeeze"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "maxwidth:physical",
|
||||||
|
"description": "Layer 'Barriers' shows and asks freeform values for key 'maxwidth:physical' (in the MapComplete.osm.be theme 'Bicycle infrastructure')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "width:seperation",
|
||||||
|
"description": "Layer 'Barriers' shows and asks freeform values for key 'width:seperation' (in the MapComplete.osm.be theme 'Bicycle infrastructure')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "width:opening",
|
||||||
|
"description": "Layer 'Barriers' shows and asks freeform values for key 'width:opening' (in the MapComplete.osm.be theme 'Bicycle infrastructure')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "overlap",
|
||||||
|
"description": "Layer 'Barriers' shows and asks freeform values for key 'overlap' (in the MapComplete.osm.be theme 'Bicycle infrastructure')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "highway",
|
||||||
|
"description": "The MapComplete theme Bicycle infrastructure has a layer Crossings showing features with this tag",
|
||||||
|
"value": "traffic_signals"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "highway",
|
||||||
|
"description": "The MapComplete theme Bicycle infrastructure has a layer Crossings showing features with this tag",
|
||||||
|
"value": "crossing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "crossing",
|
||||||
|
"description": "Layer 'Crossings' shows crossing=uncontrolled with a fixed text, namely 'Crossing, without traffic lights' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "uncontrolled"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "crossing",
|
||||||
|
"description": "Layer 'Crossings' shows crossing=traffic_signals with a fixed text, namely 'Crossing with traffic signals' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "traffic_signals"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "crossing",
|
||||||
|
"description": "Layer 'Crossings' shows crossing=zebra with a fixed text, namely 'Zebra crossing' (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "zebra"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "bicycle",
|
||||||
|
"description": "Layer 'Crossings' shows bicycle=yes with a fixed text, namely 'A cyclist can use this crossing' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "bicycle",
|
||||||
|
"description": "Layer 'Crossings' shows bicycle=no with a fixed text, namely 'A cyclist can not use this crossing' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "crossing:island",
|
||||||
|
"description": "Layer 'Crossings' shows crossing:island=yes with a fixed text, namely 'This crossing has an island in the middle' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "crossing:island",
|
||||||
|
"description": "Layer 'Crossings' shows crossing:island=no with a fixed text, namely 'This crossing does not have an island in the middle' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "tactile_paving",
|
||||||
|
"description": "Layer 'Crossings' shows tactile_paving=yes with a fixed text, namely 'This crossing has tactile paving' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "tactile_paving",
|
||||||
|
"description": "Layer 'Crossings' shows tactile_paving=no with a fixed text, namely 'This crossing does not have tactile paving' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "tactile_paving",
|
||||||
|
"description": "Layer 'Crossings' shows tactile_paving=incorrect with a fixed text, namely 'This crossing has tactile paving, but is not correct' (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "incorrect"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "button_operated",
|
||||||
|
"description": "Layer 'Crossings' shows button_operated=yes with a fixed text, namely 'This traffic light has a button to request green light' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "button_operated",
|
||||||
|
"description": "Layer 'Crossings' shows button_operated=no with a fixed text, namely 'This traffic light does not have a button to request green light' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "red_turn:right:bicycle",
|
||||||
|
"description": "Layer 'Crossings' shows red_turn:right:bicycle=yes with a fixed text, namely 'A cyclist can turn right if the light is red <img src='./assets/layers/crossings/Belgian_road_sign_B22.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "red_turn:right:bicycle",
|
||||||
|
"description": "Layer 'Crossings' shows red_turn:right:bicycle=yes with a fixed text, namely 'A cyclist can turn right if the light is red' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "red_turn:right:bicycle",
|
||||||
|
"description": "Layer 'Crossings' shows red_turn:right:bicycle=no with a fixed text, namely 'A cyclist can not turn right if the light is red' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "red_turn:straight:bicycle",
|
||||||
|
"description": "Layer 'Crossings' shows red_turn:straight:bicycle=yes with a fixed text, namely 'A cyclist can go straight on if the light is red <img src='./assets/layers/crossings/Belgian_road_sign_B23.svg' style='height: 3em'>' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "red_turn:straight:bicycle",
|
||||||
|
"description": "Layer 'Crossings' shows red_turn:straight:bicycle=yes with a fixed text, namely 'A cyclist can go straight on if the light is red' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "red_turn:straight:bicycle",
|
||||||
|
"description": "Layer 'Crossings' shows red_turn:straight:bicycle=no with a fixed text, namely 'A cyclist can not go straight on if the light is red' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Bicycle infrastructure')",
|
||||||
|
"value": "no"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
264
Docs/TagInfo/mapcomplete_cyclestreets.json
Normal file
264
Docs/TagInfo/mapcomplete_cyclestreets.json
Normal file
|
@ -0,0 +1,264 @@
|
||||||
|
{
|
||||||
|
"data_format": 1,
|
||||||
|
"project": {
|
||||||
|
"name": "MapComplete Cyclestreets",
|
||||||
|
"description": "A map of cyclestreets",
|
||||||
|
"project_url": "https://mapcomplete.osm.be/cyclestreets",
|
||||||
|
"doc_url": "https://github.com/pietervdvn/MapComplete/tree/master/assets/themes/",
|
||||||
|
"icon_url": "https://mapcomplete.osm.be/assets/themes/cyclestreets/F111.svg",
|
||||||
|
"contact_name": "Pieter Vander Vennet, MapComplete",
|
||||||
|
"contact_email": "pietervdvn@posteo.net"
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "The MapComplete theme Cyclestreets has a layer Cyclestreets showing features with this tag",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "image",
|
||||||
|
"description": "The layer 'Cyclestreets allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "mapillary",
|
||||||
|
"description": "The layer 'Cyclestreets allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "wikidata",
|
||||||
|
"description": "The layer 'Cyclestreets allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "wikipedia",
|
||||||
|
"description": "The layer 'Cyclestreets allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "Layer 'Cyclestreets' shows cyclestreet=yes&maxspeed=30&overtaking:motor_vehicle=no&proposed:cyclestreet= with a fixed text, namely 'This street is a cyclestreet (and has a speed limit of 30 km/h)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "maxspeed",
|
||||||
|
"description": "Layer 'Cyclestreets' shows cyclestreet=yes&maxspeed=30&overtaking:motor_vehicle=no&proposed:cyclestreet= with a fixed text, namely 'This street is a cyclestreet (and has a speed limit of 30 km/h)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||||
|
"value": "30"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "overtaking:motor_vehicle",
|
||||||
|
"description": "Layer 'Cyclestreets' shows cyclestreet=yes&maxspeed=30&overtaking:motor_vehicle=no&proposed:cyclestreet= with a fixed text, namely 'This street is a cyclestreet (and has a speed limit of 30 km/h)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||||
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "proposed:cyclestreet",
|
||||||
|
"description": "Layer 'Cyclestreets' shows cyclestreet=yes&maxspeed=30&overtaking:motor_vehicle=no&proposed:cyclestreet= with a fixed text, namely 'This street is a cyclestreet (and has a speed limit of 30 km/h)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "Layer 'Cyclestreets' shows cyclestreet=yes&proposed:cyclestreet= with a fixed text, namely 'This street is a cyclestreet' (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "proposed:cyclestreet",
|
||||||
|
"description": "Layer 'Cyclestreets' shows cyclestreet=yes&proposed:cyclestreet= with a fixed text, namely 'This street is a cyclestreet' (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "Layer 'Cyclestreets' shows cyclestreet=&proposed:cyclestreet=yes with a fixed text, namely 'This street will become a cyclstreet soon' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key cyclestreet.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "proposed:cyclestreet",
|
||||||
|
"description": "Layer 'Cyclestreets' shows cyclestreet=&proposed:cyclestreet=yes with a fixed text, namely 'This street will become a cyclstreet soon' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "Layer 'Cyclestreets' shows cyclestreet=&proposed:cyclestreet=&overtaking:motor_vehicle= with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key cyclestreet.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "proposed:cyclestreet",
|
||||||
|
"description": "Layer 'Cyclestreets' shows cyclestreet=&proposed:cyclestreet=&overtaking:motor_vehicle= with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "overtaking:motor_vehicle",
|
||||||
|
"description": "Layer 'Cyclestreets' shows cyclestreet=&proposed:cyclestreet=&overtaking:motor_vehicle= with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key overtaking:motor_vehicle.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet:start_date",
|
||||||
|
"description": "Layer 'Cyclestreets' shows and asks freeform values for key 'cyclestreet:start_date' (in the MapComplete.osm.be theme 'Cyclestreets')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "proposed:cyclestreet",
|
||||||
|
"description": "The MapComplete theme Cyclestreets has a layer Future cyclestreet showing features with this tag",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "image",
|
||||||
|
"description": "The layer 'Future cyclestreet allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "mapillary",
|
||||||
|
"description": "The layer 'Future cyclestreet allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "wikidata",
|
||||||
|
"description": "The layer 'Future cyclestreet allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "wikipedia",
|
||||||
|
"description": "The layer 'Future cyclestreet allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "Layer 'Future cyclestreet' shows cyclestreet=yes&maxspeed=30&overtaking:motor_vehicle=no&proposed:cyclestreet= with a fixed text, namely 'This street is a cyclestreet (and has a speed limit of 30 km/h)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "maxspeed",
|
||||||
|
"description": "Layer 'Future cyclestreet' shows cyclestreet=yes&maxspeed=30&overtaking:motor_vehicle=no&proposed:cyclestreet= with a fixed text, namely 'This street is a cyclestreet (and has a speed limit of 30 km/h)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||||
|
"value": "30"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "overtaking:motor_vehicle",
|
||||||
|
"description": "Layer 'Future cyclestreet' shows cyclestreet=yes&maxspeed=30&overtaking:motor_vehicle=no&proposed:cyclestreet= with a fixed text, namely 'This street is a cyclestreet (and has a speed limit of 30 km/h)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||||
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "proposed:cyclestreet",
|
||||||
|
"description": "Layer 'Future cyclestreet' shows cyclestreet=yes&maxspeed=30&overtaking:motor_vehicle=no&proposed:cyclestreet= with a fixed text, namely 'This street is a cyclestreet (and has a speed limit of 30 km/h)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "Layer 'Future cyclestreet' shows cyclestreet=yes&proposed:cyclestreet= with a fixed text, namely 'This street is a cyclestreet' (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "proposed:cyclestreet",
|
||||||
|
"description": "Layer 'Future cyclestreet' shows cyclestreet=yes&proposed:cyclestreet= with a fixed text, namely 'This street is a cyclestreet' (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "Layer 'Future cyclestreet' shows cyclestreet=&proposed:cyclestreet=yes with a fixed text, namely 'This street will become a cyclstreet soon' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key cyclestreet.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "proposed:cyclestreet",
|
||||||
|
"description": "Layer 'Future cyclestreet' shows cyclestreet=&proposed:cyclestreet=yes with a fixed text, namely 'This street will become a cyclstreet soon' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "Layer 'Future cyclestreet' shows cyclestreet=&proposed:cyclestreet=&overtaking:motor_vehicle= with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key cyclestreet.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "proposed:cyclestreet",
|
||||||
|
"description": "Layer 'Future cyclestreet' shows cyclestreet=&proposed:cyclestreet=&overtaking:motor_vehicle= with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "overtaking:motor_vehicle",
|
||||||
|
"description": "Layer 'Future cyclestreet' shows cyclestreet=&proposed:cyclestreet=&overtaking:motor_vehicle= with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key overtaking:motor_vehicle.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet:start_date",
|
||||||
|
"description": "Layer 'Future cyclestreet' shows and asks freeform values for key 'cyclestreet:start_date' (in the MapComplete.osm.be theme 'Cyclestreets')"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "highway",
|
||||||
|
"description": "The MapComplete theme Cyclestreets has a layer All streets showing features with this tag",
|
||||||
|
"value": "residential"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "highway",
|
||||||
|
"description": "The MapComplete theme Cyclestreets has a layer All streets showing features with this tag",
|
||||||
|
"value": "tertiary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "highway",
|
||||||
|
"description": "The MapComplete theme Cyclestreets has a layer All streets showing features with this tag",
|
||||||
|
"value": "unclassified"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "image",
|
||||||
|
"description": "The layer 'All streets allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "mapillary",
|
||||||
|
"description": "The layer 'All streets allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "wikidata",
|
||||||
|
"description": "The layer 'All streets allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "wikipedia",
|
||||||
|
"description": "The layer 'All streets allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "Layer 'All streets' shows cyclestreet=yes&maxspeed=30&overtaking:motor_vehicle=no&proposed:cyclestreet= with a fixed text, namely 'This street is a cyclestreet (and has a speed limit of 30 km/h)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "maxspeed",
|
||||||
|
"description": "Layer 'All streets' shows cyclestreet=yes&maxspeed=30&overtaking:motor_vehicle=no&proposed:cyclestreet= with a fixed text, namely 'This street is a cyclestreet (and has a speed limit of 30 km/h)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||||
|
"value": "30"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "overtaking:motor_vehicle",
|
||||||
|
"description": "Layer 'All streets' shows cyclestreet=yes&maxspeed=30&overtaking:motor_vehicle=no&proposed:cyclestreet= with a fixed text, namely 'This street is a cyclestreet (and has a speed limit of 30 km/h)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||||
|
"value": "no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "proposed:cyclestreet",
|
||||||
|
"description": "Layer 'All streets' shows cyclestreet=yes&maxspeed=30&overtaking:motor_vehicle=no&proposed:cyclestreet= with a fixed text, namely 'This street is a cyclestreet (and has a speed limit of 30 km/h)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "Layer 'All streets' shows cyclestreet=yes&proposed:cyclestreet= with a fixed text, namely 'This street is a cyclestreet' (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "proposed:cyclestreet",
|
||||||
|
"description": "Layer 'All streets' shows cyclestreet=yes&proposed:cyclestreet= with a fixed text, namely 'This street is a cyclestreet' (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "Layer 'All streets' shows cyclestreet=&proposed:cyclestreet=yes with a fixed text, namely 'This street will become a cyclstreet soon' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key cyclestreet.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "proposed:cyclestreet",
|
||||||
|
"description": "Layer 'All streets' shows cyclestreet=&proposed:cyclestreet=yes with a fixed text, namely 'This street will become a cyclstreet soon' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets')",
|
||||||
|
"value": "yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet",
|
||||||
|
"description": "Layer 'All streets' shows cyclestreet=&proposed:cyclestreet=&overtaking:motor_vehicle= with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key cyclestreet.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "proposed:cyclestreet",
|
||||||
|
"description": "Layer 'All streets' shows cyclestreet=&proposed:cyclestreet=&overtaking:motor_vehicle= with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key proposed:cyclestreet.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "overtaking:motor_vehicle",
|
||||||
|
"description": "Layer 'All streets' shows cyclestreet=&proposed:cyclestreet=&overtaking:motor_vehicle= with a fixed text, namely 'This street is not a cyclestreet' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclestreets') Picking this answer will delete the key overtaking:motor_vehicle.",
|
||||||
|
"value": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "cyclestreet:start_date",
|
||||||
|
"description": "Layer 'All streets' shows and asks freeform values for key 'cyclestreet:start_date' (in the MapComplete.osm.be theme 'Cyclestreets')"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -5,7 +5,7 @@
|
||||||
"description": "Surveillance cameras and other means of surveillance",
|
"description": "Surveillance cameras and other means of surveillance",
|
||||||
"project_url": "https://mapcomplete.osm.be/surveillance",
|
"project_url": "https://mapcomplete.osm.be/surveillance",
|
||||||
"doc_url": "https://github.com/pietervdvn/MapComplete/tree/master/assets/themes/",
|
"doc_url": "https://github.com/pietervdvn/MapComplete/tree/master/assets/themes/",
|
||||||
"icon_url": "https://mapcomplete.osm.be/assets/themes/surveillance_cameras/logo.svg",
|
"icon_url": "https://mapcomplete.osm.be/assets/themes/surveillance/logo.svg",
|
||||||
"contact_name": "Pieter Vander Vennet, ",
|
"contact_name": "Pieter Vander Vennet, ",
|
||||||
"contact_email": "pietervdvn@posteo.net"
|
"contact_email": "pietervdvn@posteo.net"
|
||||||
},
|
},
|
||||||
|
|
|
@ -6,8 +6,8 @@ import {Utils} from "../Utils";
|
||||||
import BaseUIElement from "../UI/BaseUIElement";
|
import BaseUIElement from "../UI/BaseUIElement";
|
||||||
import List from "../UI/Base/List";
|
import List from "../UI/Base/List";
|
||||||
import Title from "../UI/Base/Title";
|
import Title from "../UI/Base/Title";
|
||||||
import AspectedRouting from "aspected-routing"
|
|
||||||
import {UIEventSourceTools} from "./UIEventSource";
|
import {UIEventSourceTools} from "./UIEventSource";
|
||||||
|
import AspectedRouting from "./Osm/aspectedRouting";
|
||||||
|
|
||||||
export class ExtraFunction {
|
export class ExtraFunction {
|
||||||
|
|
||||||
|
@ -189,7 +189,6 @@ export class ExtraFunction {
|
||||||
private readonly _name: string;
|
private readonly _name: string;
|
||||||
private readonly _args: string[];
|
private readonly _args: string[];
|
||||||
private readonly _doc: string;
|
private readonly _doc: string;
|
||||||
private readonly _async: boolean;
|
|
||||||
private readonly _f: (params: { featuresPerLayer: Map<string, any[]>, relations: { role: string, relation: Relation }[] }, feat: any) => any;
|
private readonly _f: (params: { featuresPerLayer: Map<string, any[]>, relations: { role: string, relation: Relation }[] }, feat: any) => any;
|
||||||
|
|
||||||
constructor(options: { name: string, doc: string, args: string[] },
|
constructor(options: { name: string, doc: string, args: string[] },
|
||||||
|
|
194
Logic/Osm/aspectedRouting.ts
Normal file
194
Logic/Osm/aspectedRouting.ts
Normal file
|
@ -0,0 +1,194 @@
|
||||||
|
export default class AspectedRouting {
|
||||||
|
|
||||||
|
public readonly name: string
|
||||||
|
public readonly description: string
|
||||||
|
public readonly units: string
|
||||||
|
public readonly program: any
|
||||||
|
|
||||||
|
public constructor(program) {
|
||||||
|
this.name = program.name;
|
||||||
|
this.description = program.description;
|
||||||
|
this.units = program.unit
|
||||||
|
this.program = JSON.parse(JSON.stringify(program))
|
||||||
|
delete this.program.name
|
||||||
|
delete this.program.description
|
||||||
|
delete this.program.unit
|
||||||
|
}
|
||||||
|
|
||||||
|
public evaluate(properties){
|
||||||
|
return AspectedRouting.interpret(this.program, properties)
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Interprets the given Aspected-routing program for the given properties
|
||||||
|
*/
|
||||||
|
public static interpret(program: any, properties: any) {
|
||||||
|
if (typeof program !== "object") {
|
||||||
|
return program;
|
||||||
|
}
|
||||||
|
|
||||||
|
let functionName /*: string*/ = undefined;
|
||||||
|
let functionArguments /*: any */ = undefined
|
||||||
|
let otherValues = {}
|
||||||
|
// @ts-ignore
|
||||||
|
Object.entries(program).forEach(tag => {
|
||||||
|
const [key, value] = tag;
|
||||||
|
if (key.startsWith("$")) {
|
||||||
|
functionName = key
|
||||||
|
functionArguments = value
|
||||||
|
} else {
|
||||||
|
otherValues[key] = value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
if (functionName === undefined) {
|
||||||
|
return AspectedRouting.interpretAsDictionary(program, properties)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (functionName === '$multiply') {
|
||||||
|
return AspectedRouting.multiplyScore(properties, functionArguments);
|
||||||
|
} else if (functionName === '$firstMatchOf') {
|
||||||
|
return AspectedRouting.getFirstMatchScore(properties, functionArguments);
|
||||||
|
} else if (functionName === '$min') {
|
||||||
|
return AspectedRouting.getMinValue(properties, functionArguments);
|
||||||
|
} else if (functionName === '$max') {
|
||||||
|
return AspectedRouting.getMaxValue(properties, functionArguments);
|
||||||
|
} else if (functionName === '$default') {
|
||||||
|
return AspectedRouting.defaultV(functionArguments, otherValues, properties)
|
||||||
|
} else {
|
||||||
|
console.error(`Error: Program ${functionName} is not implemented yet. ${JSON.stringify(program)}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Given a 'program' without function invocation, interprets it as a dictionary
|
||||||
|
*
|
||||||
|
* E.g., given the program
|
||||||
|
*
|
||||||
|
* {
|
||||||
|
* highway: {
|
||||||
|
* residential: 30,
|
||||||
|
* living_street: 20
|
||||||
|
* },
|
||||||
|
* surface: {
|
||||||
|
* sett : 0.9
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* in combination with the tags {highway: residential},
|
||||||
|
*
|
||||||
|
* the result should be [30, undefined];
|
||||||
|
*
|
||||||
|
* For the tags {highway: residential, surface: sett} we should get [30, 0.9]
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param program
|
||||||
|
* @param tags
|
||||||
|
* @return {(undefined|*)[]}
|
||||||
|
*/
|
||||||
|
private static interpretAsDictionary(program, tags) {
|
||||||
|
// @ts-ignore
|
||||||
|
return Object.entries(tags).map(tag => {
|
||||||
|
const [key, value] = tag;
|
||||||
|
const propertyValue = program[key]
|
||||||
|
if (propertyValue === undefined) {
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
if (typeof propertyValue !== "object") {
|
||||||
|
return propertyValue
|
||||||
|
}
|
||||||
|
// @ts-ignore
|
||||||
|
return propertyValue[value]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private static defaultV(subProgram, otherArgs, tags) {
|
||||||
|
// @ts-ignore
|
||||||
|
const normalProgram = Object.entries(otherArgs)[0][1]
|
||||||
|
const value = AspectedRouting.interpret(normalProgram, tags)
|
||||||
|
if (value !== undefined) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
return AspectedRouting.interpret(subProgram, tags)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Multiplies the default score with the proper values
|
||||||
|
* @param tags {object} the active tags to check against
|
||||||
|
* @param subprograms which should generate a list of values
|
||||||
|
* @returns score after multiplication
|
||||||
|
*/
|
||||||
|
private static multiplyScore(tags, subprograms) {
|
||||||
|
let number = 1
|
||||||
|
|
||||||
|
let subResults: any[]
|
||||||
|
if (subprograms.length !== undefined) {
|
||||||
|
subResults = AspectedRouting.concatMap(subprograms, subprogram => AspectedRouting.interpret(subprogram, tags))
|
||||||
|
} else {
|
||||||
|
subResults = AspectedRouting.interpret(subprograms, tags)
|
||||||
|
}
|
||||||
|
|
||||||
|
subResults.filter(r => r !== undefined).forEach(r => number *= parseFloat(r))
|
||||||
|
return number.toFixed(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static getFirstMatchScore(tags, order: any) {
|
||||||
|
/*Order should be a list of arguments after evaluation*/
|
||||||
|
order = <string[]>AspectedRouting.interpret(order, tags)
|
||||||
|
for (let key of order) {
|
||||||
|
// @ts-ignore
|
||||||
|
for (let entry of Object.entries(JSON.parse(tags))) {
|
||||||
|
const [tagKey, value] = entry;
|
||||||
|
if (key === tagKey) {
|
||||||
|
// We have a match... let's evaluate the subprogram
|
||||||
|
const evaluated = AspectedRouting.interpret(value, tags)
|
||||||
|
if (evaluated !== undefined) {
|
||||||
|
return evaluated;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Not a single match found...
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
|
||||||
|
private static getMinValue(tags, subprogram) {
|
||||||
|
const minArr = subprogram.map(part => {
|
||||||
|
if (typeof (part) === 'object') {
|
||||||
|
const calculatedValue = this.interpret(part, tags)
|
||||||
|
return parseFloat(calculatedValue)
|
||||||
|
} else {
|
||||||
|
return parseFloat(part);
|
||||||
|
}
|
||||||
|
}).filter(v => !isNaN(v));
|
||||||
|
return Math.min(...minArr);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static getMaxValue(tags, subprogram) {
|
||||||
|
const maxArr = subprogram.map(part => {
|
||||||
|
if (typeof (part) === 'object') {
|
||||||
|
return parseFloat(AspectedRouting.interpret(part, tags))
|
||||||
|
} else {
|
||||||
|
return parseFloat(part);
|
||||||
|
}
|
||||||
|
}).filter(v => !isNaN(v));
|
||||||
|
return Math.max(...maxArr);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static concatMap(list, f): any[] {
|
||||||
|
const result = []
|
||||||
|
list = list.map(f)
|
||||||
|
for (const elem of list) {
|
||||||
|
if (elem.length !== undefined) {
|
||||||
|
// This is a list
|
||||||
|
result.push(...elem)
|
||||||
|
} else {
|
||||||
|
result.push(elem)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
222
package-lock.json
generated
222
package-lock.json
generated
|
@ -22,7 +22,6 @@
|
||||||
"@types/leaflet.markercluster": "^1.4.3",
|
"@types/leaflet.markercluster": "^1.4.3",
|
||||||
"@types/lz-string": "^1.3.34",
|
"@types/lz-string": "^1.3.34",
|
||||||
"@types/prompt-sync": "^4.1.0",
|
"@types/prompt-sync": "^4.1.0",
|
||||||
"aspected-routing": "^0.3.1",
|
|
||||||
"autoprefixer": "^9.8.6",
|
"autoprefixer": "^9.8.6",
|
||||||
"country-language": "^0.1.7",
|
"country-language": "^0.1.7",
|
||||||
"email-validator": "^2.0.4",
|
"email-validator": "^2.0.4",
|
||||||
|
@ -53,7 +52,7 @@
|
||||||
"fs": "0.0.1-security",
|
"fs": "0.0.1-security",
|
||||||
"marked": "^2.0.0",
|
"marked": "^2.0.0",
|
||||||
"read-file": "^0.2.0",
|
"read-file": "^0.2.0",
|
||||||
"sharp": "^0.27.0",
|
"sharp": "^0.28.3",
|
||||||
"tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.2.7",
|
"tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.2.7",
|
||||||
"ts-node": "^9.0.0",
|
"ts-node": "^9.0.0",
|
||||||
"ts-node-dev": "^1.0.0-pre.63",
|
"ts-node-dev": "^1.0.0-pre.63",
|
||||||
|
@ -3107,12 +3106,6 @@
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/array-flatten": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz",
|
|
||||||
"integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/array-unique": {
|
"node_modules/array-unique": {
|
||||||
"version": "0.3.2",
|
"version": "0.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
|
||||||
|
@ -3140,11 +3133,6 @@
|
||||||
"safer-buffer": "^2.1.0"
|
"safer-buffer": "^2.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/aspected-routing": {
|
|
||||||
"version": "0.3.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/aspected-routing/-/aspected-routing-0.3.1.tgz",
|
|
||||||
"integrity": "sha512-abHvrYeun/XbXq/p7KKa5p2v/LVVMa2uC3iJis1hEFi59yMithWulBMIV5mStms4wFDMui4Xvv+plRYrTmB8zw=="
|
|
||||||
},
|
|
||||||
"node_modules/assert": {
|
"node_modules/assert": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz",
|
||||||
|
@ -3467,6 +3455,20 @@
|
||||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
||||||
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patreon",
|
||||||
|
"url": "https://www.patreon.com/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "consulting",
|
||||||
|
"url": "https://feross.org/support"
|
||||||
|
}
|
||||||
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"base64-js": "^1.3.1",
|
"base64-js": "^1.3.1",
|
||||||
"ieee754": "^1.1.13"
|
"ieee754": "^1.1.13"
|
||||||
|
@ -9192,6 +9194,9 @@
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/minimalistic-assert": {
|
"node_modules/minimalistic-assert": {
|
||||||
|
@ -9440,9 +9445,9 @@
|
||||||
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
|
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
|
||||||
},
|
},
|
||||||
"node_modules/node-abi": {
|
"node_modules/node-abi": {
|
||||||
"version": "2.26.0",
|
"version": "2.30.0",
|
||||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.26.0.tgz",
|
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.0.tgz",
|
||||||
"integrity": "sha512-ag/Vos/mXXpWLLAYWsAoQdgS+gW7IwvgMLOgqopm/DbzAjazLltzgzpVMsFlgmo9TzG5hGXeaBZx2AI731RIsQ==",
|
"integrity": "sha512-g6bZh3YCKQRdwuO/tSZZYJAw622SjsRfJ2X0Iy4sSOHZ34/sPPdVBn8fev2tj7njzLwuqPw9uMtGsGkO5kIQvg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"semver": "^5.4.1"
|
"semver": "^5.4.1"
|
||||||
|
@ -9540,12 +9545,6 @@
|
||||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz",
|
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz",
|
||||||
"integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg=="
|
"integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg=="
|
||||||
},
|
},
|
||||||
"node_modules/noop-logger": {
|
|
||||||
"version": "0.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
|
|
||||||
"integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"node_modules/normalize-package-data": {
|
"node_modules/normalize-package-data": {
|
||||||
"version": "2.5.0",
|
"version": "2.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
|
||||||
|
@ -11215,9 +11214,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/prebuild-install": {
|
"node_modules/prebuild-install": {
|
||||||
"version": "6.1.2",
|
"version": "6.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.3.tgz",
|
||||||
"integrity": "sha512-PzYWIKZeP+967WuKYXlTOhYBgGOvTRSfaKI89XnfJ0ansRAH7hDU45X+K+FZeI1Wb/7p/NnuctPH3g0IqKUuSQ==",
|
"integrity": "sha512-iqqSR84tNYQUQHRXalSKdIaM8Ov1QxOVuBNWI7+BzZWv6Ih9k75wOnH1rGQ9WWTaaLkTpxWKIciOF0KyfM74+Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"detect-libc": "^1.0.3",
|
"detect-libc": "^1.0.3",
|
||||||
|
@ -11227,7 +11226,6 @@
|
||||||
"mkdirp-classic": "^0.5.3",
|
"mkdirp-classic": "^0.5.3",
|
||||||
"napi-build-utils": "^1.0.1",
|
"napi-build-utils": "^1.0.1",
|
||||||
"node-abi": "^2.21.0",
|
"node-abi": "^2.21.0",
|
||||||
"noop-logger": "^0.1.1",
|
|
||||||
"npmlog": "^4.0.1",
|
"npmlog": "^4.0.1",
|
||||||
"pump": "^3.0.0",
|
"pump": "^3.0.0",
|
||||||
"rc": "^1.2.7",
|
"rc": "^1.2.7",
|
||||||
|
@ -11242,17 +11240,6 @@
|
||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/prebuild-install/node_modules/simple-get": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz",
|
|
||||||
"integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"decompress-response": "^4.2.0",
|
|
||||||
"once": "^1.3.1",
|
|
||||||
"simple-concat": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/prelude-ls": {
|
"node_modules/prelude-ls": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
|
||||||
|
@ -12100,24 +12087,26 @@
|
||||||
"integrity": "sha1-16oye87PUY+RBqxrjwA/o7zqhWY="
|
"integrity": "sha1-16oye87PUY+RBqxrjwA/o7zqhWY="
|
||||||
},
|
},
|
||||||
"node_modules/sharp": {
|
"node_modules/sharp": {
|
||||||
"version": "0.27.2",
|
"version": "0.28.3",
|
||||||
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.27.2.tgz",
|
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.28.3.tgz",
|
||||||
"integrity": "sha512-w3FVoONPG/x5MXCc3wsjOS+b9h3CI60qkus6EPQU4dkT0BDm0PyGhDCK6KhtfT3/vbeOMOXAKFNSw+I3QGWkMA==",
|
"integrity": "sha512-21GEP45Rmr7q2qcmdnjDkNP04Ooh5v0laGS5FDpojOO84D1DJwUijLiSq8XNNM6e8aGXYtoYRh3sVNdm8NodMA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"array-flatten": "^3.0.0",
|
|
||||||
"color": "^3.1.3",
|
"color": "^3.1.3",
|
||||||
"detect-libc": "^1.0.3",
|
"detect-libc": "^1.0.3",
|
||||||
"node-addon-api": "^3.1.0",
|
"node-addon-api": "^3.2.0",
|
||||||
"npmlog": "^4.1.2",
|
"prebuild-install": "^6.1.2",
|
||||||
"prebuild-install": "^6.0.1",
|
"semver": "^7.3.5",
|
||||||
"semver": "^7.3.4",
|
"simple-get": "^3.1.0",
|
||||||
"simple-get": "^4.0.0",
|
|
||||||
"tar-fs": "^2.1.1",
|
"tar-fs": "^2.1.1",
|
||||||
"tunnel-agent": "^0.6.0"
|
"tunnel-agent": "^0.6.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://opencollective.com/libvips"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/sharp/node_modules/lru-cache": {
|
"node_modules/sharp/node_modules/lru-cache": {
|
||||||
|
@ -12133,9 +12122,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/sharp/node_modules/node-addon-api": {
|
"node_modules/sharp/node_modules/node-addon-api": {
|
||||||
"version": "3.1.0",
|
"version": "3.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz",
|
||||||
"integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==",
|
"integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/sharp/node_modules/semver": {
|
"node_modules/sharp/node_modules/semver": {
|
||||||
|
@ -12186,40 +12175,33 @@
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
|
||||||
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
|
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patreon",
|
||||||
|
"url": "https://www.patreon.com/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "consulting",
|
||||||
|
"url": "https://feross.org/support"
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"node_modules/simple-get": {
|
"node_modules/simple-get": {
|
||||||
"version": "4.0.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz",
|
||||||
"integrity": "sha512-ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ==",
|
"integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"decompress-response": "^6.0.0",
|
"decompress-response": "^4.2.0",
|
||||||
"once": "^1.3.1",
|
"once": "^1.3.1",
|
||||||
"simple-concat": "^1.0.0"
|
"simple-concat": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/simple-get/node_modules/decompress-response": {
|
|
||||||
"version": "6.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
|
|
||||||
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"mimic-response": "^3.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/simple-get/node_modules/mimic-response": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
|
|
||||||
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/simple-swizzle": {
|
"node_modules/simple-swizzle": {
|
||||||
"version": "0.2.2",
|
"version": "0.2.2",
|
||||||
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
|
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
|
||||||
|
@ -17640,12 +17622,6 @@
|
||||||
"integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
|
"integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"array-flatten": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz",
|
|
||||||
"integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"array-unique": {
|
"array-unique": {
|
||||||
"version": "0.3.2",
|
"version": "0.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
|
||||||
|
@ -17670,11 +17646,6 @@
|
||||||
"safer-buffer": "^2.1.0"
|
"safer-buffer": "^2.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"aspected-routing": {
|
|
||||||
"version": "0.3.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/aspected-routing/-/aspected-routing-0.3.1.tgz",
|
|
||||||
"integrity": "sha512-abHvrYeun/XbXq/p7KKa5p2v/LVVMa2uC3iJis1hEFi59yMithWulBMIV5mStms4wFDMui4Xvv+plRYrTmB8zw=="
|
|
||||||
},
|
|
||||||
"assert": {
|
"assert": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz",
|
||||||
|
@ -23180,9 +23151,9 @@
|
||||||
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
|
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
|
||||||
},
|
},
|
||||||
"node-abi": {
|
"node-abi": {
|
||||||
"version": "2.26.0",
|
"version": "2.30.0",
|
||||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.26.0.tgz",
|
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.0.tgz",
|
||||||
"integrity": "sha512-ag/Vos/mXXpWLLAYWsAoQdgS+gW7IwvgMLOgqopm/DbzAjazLltzgzpVMsFlgmo9TzG5hGXeaBZx2AI731RIsQ==",
|
"integrity": "sha512-g6bZh3YCKQRdwuO/tSZZYJAw622SjsRfJ2X0Iy4sSOHZ34/sPPdVBn8fev2tj7njzLwuqPw9uMtGsGkO5kIQvg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"semver": "^5.4.1"
|
"semver": "^5.4.1"
|
||||||
|
@ -23280,12 +23251,6 @@
|
||||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz",
|
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz",
|
||||||
"integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg=="
|
"integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg=="
|
||||||
},
|
},
|
||||||
"noop-logger": {
|
|
||||||
"version": "0.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
|
|
||||||
"integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"normalize-package-data": {
|
"normalize-package-data": {
|
||||||
"version": "2.5.0",
|
"version": "2.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
|
||||||
|
@ -24704,9 +24669,9 @@
|
||||||
"integrity": "sha512-eSToKjNLu0FiF76SSGMHjOFXYzAc/CJqi677Sq6hYvcvFCBtD6de/W5l+0IYPf7ypscqAfjCttxvTdMJt5Gj8Q=="
|
"integrity": "sha512-eSToKjNLu0FiF76SSGMHjOFXYzAc/CJqi677Sq6hYvcvFCBtD6de/W5l+0IYPf7ypscqAfjCttxvTdMJt5Gj8Q=="
|
||||||
},
|
},
|
||||||
"prebuild-install": {
|
"prebuild-install": {
|
||||||
"version": "6.1.2",
|
"version": "6.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.3.tgz",
|
||||||
"integrity": "sha512-PzYWIKZeP+967WuKYXlTOhYBgGOvTRSfaKI89XnfJ0ansRAH7hDU45X+K+FZeI1Wb/7p/NnuctPH3g0IqKUuSQ==",
|
"integrity": "sha512-iqqSR84tNYQUQHRXalSKdIaM8Ov1QxOVuBNWI7+BzZWv6Ih9k75wOnH1rGQ9WWTaaLkTpxWKIciOF0KyfM74+Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"detect-libc": "^1.0.3",
|
"detect-libc": "^1.0.3",
|
||||||
|
@ -24716,26 +24681,12 @@
|
||||||
"mkdirp-classic": "^0.5.3",
|
"mkdirp-classic": "^0.5.3",
|
||||||
"napi-build-utils": "^1.0.1",
|
"napi-build-utils": "^1.0.1",
|
||||||
"node-abi": "^2.21.0",
|
"node-abi": "^2.21.0",
|
||||||
"noop-logger": "^0.1.1",
|
|
||||||
"npmlog": "^4.0.1",
|
"npmlog": "^4.0.1",
|
||||||
"pump": "^3.0.0",
|
"pump": "^3.0.0",
|
||||||
"rc": "^1.2.7",
|
"rc": "^1.2.7",
|
||||||
"simple-get": "^3.0.3",
|
"simple-get": "^3.0.3",
|
||||||
"tar-fs": "^2.0.0",
|
"tar-fs": "^2.0.0",
|
||||||
"tunnel-agent": "^0.6.0"
|
"tunnel-agent": "^0.6.0"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"simple-get": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz",
|
|
||||||
"integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"decompress-response": "^4.2.0",
|
|
||||||
"once": "^1.3.1",
|
|
||||||
"simple-concat": "^1.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"prelude-ls": {
|
"prelude-ls": {
|
||||||
|
@ -25454,19 +25405,17 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sharp": {
|
"sharp": {
|
||||||
"version": "0.27.2",
|
"version": "0.28.3",
|
||||||
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.27.2.tgz",
|
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.28.3.tgz",
|
||||||
"integrity": "sha512-w3FVoONPG/x5MXCc3wsjOS+b9h3CI60qkus6EPQU4dkT0BDm0PyGhDCK6KhtfT3/vbeOMOXAKFNSw+I3QGWkMA==",
|
"integrity": "sha512-21GEP45Rmr7q2qcmdnjDkNP04Ooh5v0laGS5FDpojOO84D1DJwUijLiSq8XNNM6e8aGXYtoYRh3sVNdm8NodMA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"array-flatten": "^3.0.0",
|
|
||||||
"color": "^3.1.3",
|
"color": "^3.1.3",
|
||||||
"detect-libc": "^1.0.3",
|
"detect-libc": "^1.0.3",
|
||||||
"node-addon-api": "^3.1.0",
|
"node-addon-api": "^3.2.0",
|
||||||
"npmlog": "^4.1.2",
|
"prebuild-install": "^6.1.2",
|
||||||
"prebuild-install": "^6.0.1",
|
"semver": "^7.3.5",
|
||||||
"semver": "^7.3.4",
|
"simple-get": "^3.1.0",
|
||||||
"simple-get": "^4.0.0",
|
|
||||||
"tar-fs": "^2.1.1",
|
"tar-fs": "^2.1.1",
|
||||||
"tunnel-agent": "^0.6.0"
|
"tunnel-agent": "^0.6.0"
|
||||||
},
|
},
|
||||||
|
@ -25481,9 +25430,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node-addon-api": {
|
"node-addon-api": {
|
||||||
"version": "3.1.0",
|
"version": "3.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz",
|
||||||
"integrity": "sha512-flmrDNB06LIl5lywUz7YlNGZH/5p0M7W28k8hzd9Lshtdh1wshD2Y+U4h9LD6KObOy1f+fEVdgprPrEymjM5uw==",
|
"integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"semver": {
|
"semver": {
|
||||||
|
@ -25527,31 +25476,14 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"simple-get": {
|
"simple-get": {
|
||||||
"version": "4.0.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz",
|
||||||
"integrity": "sha512-ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ==",
|
"integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"decompress-response": "^6.0.0",
|
"decompress-response": "^4.2.0",
|
||||||
"once": "^1.3.1",
|
"once": "^1.3.1",
|
||||||
"simple-concat": "^1.0.0"
|
"simple-concat": "^1.0.0"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"decompress-response": {
|
|
||||||
"version": "6.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
|
|
||||||
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"mimic-response": "^3.1.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"mimic-response": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
|
|
||||||
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
|
|
||||||
"dev": true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"simple-swizzle": {
|
"simple-swizzle": {
|
||||||
|
|
|
@ -58,7 +58,6 @@
|
||||||
"@types/leaflet.markercluster": "^1.4.3",
|
"@types/leaflet.markercluster": "^1.4.3",
|
||||||
"@types/lz-string": "^1.3.34",
|
"@types/lz-string": "^1.3.34",
|
||||||
"@types/prompt-sync": "^4.1.0",
|
"@types/prompt-sync": "^4.1.0",
|
||||||
"aspected-routing": "^0.3.1",
|
|
||||||
"autoprefixer": "^9.8.6",
|
"autoprefixer": "^9.8.6",
|
||||||
"country-language": "^0.1.7",
|
"country-language": "^0.1.7",
|
||||||
"email-validator": "^2.0.4",
|
"email-validator": "^2.0.4",
|
||||||
|
@ -89,7 +88,7 @@
|
||||||
"fs": "0.0.1-security",
|
"fs": "0.0.1-security",
|
||||||
"marked": "^2.0.0",
|
"marked": "^2.0.0",
|
||||||
"read-file": "^0.2.0",
|
"read-file": "^0.2.0",
|
||||||
"sharp": "^0.27.0",
|
"sharp": "^0.28.3",
|
||||||
"tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.2.7",
|
"tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.2.7",
|
||||||
"ts-node": "^9.0.0",
|
"ts-node": "^9.0.0",
|
||||||
"ts-node-dev": "^1.0.0-pre.63",
|
"ts-node-dev": "^1.0.0-pre.63",
|
||||||
|
|
Loading…
Reference in a new issue