mapcomplete/assets/themes/bag_import/bag.json

309 lines
No EOL
11 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"id": "bag",
"title": {
"nl": "BAG import helper",
"en": "BAG import helper"
},
"shortDescription": {
"nl": "BAG import helper tool",
"en": "BAG import helper tool"
},
"description": {
"nl": "Dit thema helpt het importeren van BAG data",
"en": "This theme helps with importing data from BAG"
},
"credits": "Wouter van der Wal",
"icon": "./assets/themes/bag_import/logo.svg",
"startLat": 53.1726,
"startLon": 7.04545,
"startZoom": 9,
"overrideAll": {
"minzoom": 19
},
"layers": [
{
"id": "osm:buildings",
"name": "OSM Buildings",
"title": "OSM Building",
"source": {
"osmTags": "building~*",
"maxCacheAge": 0
},
"calculatedTags": [
"_surface:strict:=feat.get('_surface')"
],
"mapRendering": [
{
"width": {
"render": "2",
"mappings": [
{
"if": "fixme~*",
"then": "5"
}
]
},
"color": {
"render": "#00c",
"mappings": [
{
"if": "fixme~*",
"then": "#ff00ff"
},
{
"if": "building=house",
"then": "#a00"
},
{
"if": "building=shed",
"then": "#563e02"
},
{
"if": {
"or": [
"building=garage",
"building=garages"
]
},
"then": "#f9bfbb"
},
{
"if": "building=yes",
"then": "#0774f2"
}
]
}
}
],
"tagRenderings": [
{
"id": "Reference",
"render": {
"en": "The reference in BAG is <b>{ref:bag}</b>"
},
"mappings": [
{
"if": "ref:bag=",
"then": {
"en": "This building has no reference in the BAG"
}
}
]
},
{
"id": "building type",
"freeform": {
"key": "building"
},
"render": "The building type is <b>{building}</b>",
"question": {
"en": "What kind of building is this?",
"de": "Was ist das für ein Gebäude?",
"es": "¿Qué tipo de edificio es este?",
"nl": "Wat voor soort gebouw is dit?",
"fr": "De quel type de bâtiment sagit-il ?",
"da": "Hvad er det for en bygning?"
},
"mappings": [
{
"if": "building=house",
"then": "A normal house"
},
{
"if": "building=detached",
"then": "A house detached from other building"
},
{
"if": "building=semidetached_house",
"then": "A house sharing only one wall with another house"
},
{
"if": "building=apartments",
"then": "An apartment building (highrise building for living)"
},
{
"if": "building=office",
"then": "An office building - highrise for work"
},
{
"if": "building=shed",
"then": "A small shed, e.g. in a garden"
},
{
"if": "building=garage",
"then": "A single garage to park a car"
},
{
"if": "building=garages",
"then": "A building containing only garages; typically they are all identical"
},
{
"if": "building=yes",
"then": "A building - no specification"
}
]
}
]
},
{
"id": "bag:pand",
"name": "BAG Buildings",
"title": "BAG Building",
"description": {
"en": "Buildings from BAG register"
},
"source": {
"geoJson": "https://service.pdok.nl/lv/bag/wfs/v2_0?request=GetFeature&service=WFS&version=2.0.0&outputFormat=application%2Fjson%3B%20subtype%3Dgeojson&typeName=bag%3Apand&bbox={x_min}%2C{y_min}%2C{x_max}%2C{y_max}%2CCRS84&srsName=EPSG%3A4326",
"geoJsonZoomLevel": 18,
"osmTags": {
"and": [
"identificatie~*"
]
},
"maxCacheAge": 0
},
"calculatedTags": [
"_overlaps_with_buildings=feat.overlapWith('osm:buildings').filter(f => f.feat.properties.id.indexOf('-') < 0)",
"_overlaps_with=feat.get('_overlaps_with_buildings').find(f => f.overlap > 1 /* square meter */ )",
"_overlaps_with_properties=feat.get('_overlaps_with')?.feat?.properties",
"_overlap_percentage=Math.round(100 * (feat.get('_overlaps_with')?.overlap / feat.get('_overlaps_with_properties')['_surface:strict']))",
"_reverse_overlap_percentage=Math.round(100 * (feat.get('_overlaps_with')?.overlap / feat.get('_surface')))",
"_bag_obj:in_construction=feat.properties.status.startsWith('Bouwvergunning verleend') || feat.properties.status.startsWith('Bouw gestart')",
"_bag_obj:construction=(feat.properties.gebruiksdoel == 'woonfunctie') ? ((Number(feat.properties.aantal_verblijfsobjecten) == 1) ? 'house' : 'apartments') : 'yes'",
"_bag_obj:building=(feat.properties.status.startsWith('Bouwvergunning verleend') || feat.properties.status.startsWith('Bouw gestart')) ? 'construction' : feat.properties['_bag_obj:construction']",
"_bag_obj:ref:bag=Number(feat.properties.identificatie)",
"_bag_obj:source:date=new Date().toISOString().split('T')[0]",
"_bag_obj:start_date=feat.properties.bouwjaar",
"_osm_obj:id=feat.get('_overlaps_with_properties')?.id",
"_osm_obj:building=feat.get('_overlaps_with_properties')?.building",
"_imported_osm_object_found=Number(feat.properties.identificatie)==Number(feat.get('_overlaps_with_properties')['ref:bag'])"
],
"mapRendering": [
{
"width": {
"render": 5,
"mappings": [
{
"if": "_imported_osm_object_found=true",
"then": "1"
}
]
},
"color": {
"render": "#00a",
"mappings": [
{
"if": "_imported_osm_object_found=true",
"then": "#0f0"
}
]
}
}
],
"tagRenderings": [
{
"id": "Import button",
"render": "{import_way_button(osm:buildings, building=$_bag_obj:building; ref:bag=$_bag_obj:ref:bag; source=BAG; source:date=$_bag_obj:source:date; start_date=$_bag_obj:start_date, Upload this building to OpenStreetMap)}",
"mappings": [
{
"if": {
"and": [
"_overlap_percentage>50",
"_reverse_overlap_percentage>50",
"_overlaps_with!="
]
},
"then": "{conflate_button(osm:buildings, building=$_bag_obj:building; ref:bag=$_bag_obj:ref:bag; source=BAG; source:date=$_bag_obj:source:date; start_date=$_bag_obj:start_date, Replace the geometry in OpenStreetMap, , _osm_obj:id)}"
},
{
"if": "_bag_obj:in_construction=true",
"then": "{import_way_button(osm:buildings, building=$_bag_obj:building; construction=$_bag_obj:construction; ref:bag=$_bag_obj:ref:bag; source=BAG; source:date=$_bag_obj:source:date; start_date=$_bag_obj:start_date, Upload this building to OpenStreetMap)}"
}
]
},
{
"id": "Reference",
"render": {
"en": "The reference in BAG is <b>{_bag_obj:ref:bag}</b>"
}
},
{
"id": "Build year",
"render": {
"en": "This building was build in <b>{_bag_obj:start_date}</b>"
},
"mappings": [
{
"if": "_bag_obj:in_construction=true",
"then": {
"en": "The building was started in <b>{_bag_obj:start_date}</b>"
}
}
]
},
{
"id": "Building type",
"render": {
"en": "The building type is a <b>{_bag_obj:building}</b>"
},
"mappings": [
{
"if": "_bag_obj:in_construction=true",
"then": {
"en": "The building type will be a <b>{_bag_obj:construction}</b>"
}
}
]
},
{
"id": "Overlapping building",
"render": "<div>The overlapping <a href=https://osm.org/{_osm_obj:id} target=_blank>osm:buildings</a> is a <b>{_osm_obj:building}</b> and covers <b>{_overlap_percentage}%</b> of the BAG building.<br>The BAG-building covers <b>{_reverse_overlap_percentage}%</b> of the OSM building<div><h3>BAG geometry:</h3>{minimap(21, id):height:10rem;border-radius:1rem;overflow:hidden}<h3>OSM geometry:</h3>{minimap(21,_osm_obj:id):height:10rem;border-radius:1rem;overflow:hidden}</div></div>",
"condition": "_overlaps_with!="
}
]
},
{
"id": "bag:verblijfsobject",
"name": "bag:verblijfsobject",
"title": "bag:verblijfsobject - {identificatie}",
"description": "Adressen vanaf het BAG register",
"source": {
"geoJson": "https://service.pdok.nl/lv/bag/wfs/v2_0?request=GetFeature&service=WFS&version=2.0.0&outputFormat=application%2Fjson%3B%20subtype%3Dgeojson&typeName=bag%3Averblijfsobject&bbox={x_min}%2C{y_min}%2C{x_max}%2C{y_max}%2CCRS84&srsName=EPSG%3A4326",
"geoJsonZoomLevel": 19,
"osmTags": {
"and": [
"identificatie~*"
]
},
"maxCacheAge": 0
},
"calculatedTags": [
"addr:housenumber:=`${feat.properties.huisnummer}${feat.properties.huisletter}${(feat.properties.toevoeging != '') ? '-' : ''}${feat.properties.toevoeging}`"
],
"mapRendering": [
{
"label": {
"render": "<div style='color: black' class='rounded-full p-1 font-bold relative'>{addr:housenumber}</div>",
"condition": "addr:housenumber~*"
},
"location": [
"point",
"centroid"
]
},
{
"width": {
"render": 1
}
}
],
"tagRenderings": [
{
"id": "Adress",
"render": "{openbare_ruimte} {addr:housenumber}, {woonplaats} {postcode}"
}
]
}
],
"hideFromOverview": true
}