{ "id": "grb", "title": { "nl": "GRB import helper" }, "shortDescription": { "nl": "Grb import helper tool" }, "description": { "nl": "Dit thema helpt het GRB importeren.", "en": "This theme is an attempt to help automating the GRB import.", "hu": "Ez a sablon a flandriai GRB épületimportálás automatizlását kívánja megkönnyíteni.", "de": "Dieses Thema ist ein Versuch, die Automatisierung des GRB-Imports zu unterstützen." }, "maintainer": "Pieter Vander Vennet", "icon": "./assets/themes/grb_import/logo.svg", "version": "0", "startLat": 51.0249, "startLon": 4.026489, "startZoom": 9, "widenFactor": 2, "clustering": { "maxZoom": 15 }, "overrideAll": { "minzoom": 19 }, "layers": [ { "builtin": "type_node", "override": { "calculatedTags": [ "_is_part_of_building=feat.get('parent_ways')?.some(p => p.building !== undefined && p.building !== '') ?? false", "_is_part_of_grb_building=feat.get('parent_ways')?.some(p => p['source:geometry:ref'] !== undefined) ?? false", "_is_part_of_building_passage=feat.get('parent_ways')?.some(p => p.tunnel === 'building_passage') ?? false", "_is_part_of_highway=!feat.get('is_part_of_building_passage') && (feat.get('parent_ways')?.some(p => p.highway !== undefined && p.highway !== '') ?? false)", "_is_part_of_landuse=feat.get('parent_ways')?.some(p => (p.landuse !== undefined && p.landuse !== '') || (p.natural !== undefined && p.natural !== '')) ?? false", "_moveable=feat.get('_is_part_of_building') && !feat.get('_is_part_of_grb_building')" ], "mapRendering": [ { "icon": "square:#cc0", "iconSize": "5,5,center", "location": [ "point" ] } ], "passAllFeatures": true } }, { "id": "osm-buildings", "name": "All OSM-buildings", "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" } ] } } ], "title": "OSM-gebouw", "tagRenderings": [ { "id": "building type", "freeform": { "key": "building" }, "render": "The building type is {building}", "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?" }, "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": "grb-housenumber", "render": { "nl": "Het huisnummer is {addr:housenumber}" }, "question": { "nl": "Wat is het huisnummer?" }, "freeform": { "key": "addr:housenumber" }, "mappings": [ { "if": { "and": [ "not:addr:housenumber=yes", "addr:housenumber=" ] }, "then": { "nl": "Geen huisnummer" } } ] }, { "id": "grb-unit", "question": "Wat is de wooneenheid-aanduiding?", "render": { "nl": "De wooneenheid-aanduiding is {addr:unit} " }, "freeform": { "key": "addr:unit" }, "mappings": [ { "if": "addr:unit=", "then": "Geen wooneenheid-nummer" } ] }, { "id": "grb-street", "render": { "nl": "De straat is {addr:street}" }, "freeform": { "key": "addr:street" }, "question": { "nl": "Wat is de straat?" } }, { "id": "grb-fixme", "render": { "nl": "De fixme is {fixme}" }, "question": { "nl": "Wat zegt de fixme?" }, "freeform": { "key": "fixme" }, "mappings": [ { "if": { "and": [ "fixme=" ] }, "then": { "nl": "Geen fixme" } } ] }, { "id": "grb-min-level", "render": { "nl": "Dit gebouw begint maar op de {building:min_level} verdieping" }, "question": { "nl": "Hoeveel verdiepingen ontbreken?" }, "freeform": { "key": "building:min_level", "type": "pnat" } }, "all_tags" ], "filter": [ { "id": "has-fixme", "options": [ { "osmTags": "fixme~*", "question": "Heeft een FIXME" } ] } ] }, { "id": "service_ways", "name": "Service roads", "description": "A seperate layer with service roads, as to remove them from the intersection testing", "source": { "osmTags": "highway=service" }, "mapRendering": [ { "width": 4, "color": "#888888" } ], "title": { "render": "Service road" }, "tagRenderings": [] }, { "id": "generic_osm_object", "name": "All OSM Objects", "source": { "osmTags": { "and": [ "id~*", "place=", "disused:power=", "power=", "type!=boundary", "boundary=", { "or": [ "level=", "level=0" ] }, { "or": [ "layer=0", "layer=" ] } ] }, "maxCacheAge": 0 }, "mapRendering": [ { "color": { "render": "#ccc" }, "width": { "render": "1" }, "fill": "no" } ], "title": { "render": { "*": "Other OSM-Object" } }, "tagRenderings": [ "all_tags" ] }, "address", { "builtin": "crab_address", "override": { "calculatedTags+": [ "_embedded_in=feat.overlapWith('osm-buildings').filter(b => /* Do not match newly created objects */ b.feat.properties.id.indexOf('-') < 0)[0]?.feat?.properties ?? {}", "_embedding_nr=feat.get('_embedded_in')['addr:housenumber']+(feat.get('_embedded_in')['addr:unit'] ?? '')", "_embedding_street=feat.get('_embedded_in')['addr:street']", "_embedding_id=feat.get('_embedded_in').id", "_closeby_addresses=feat.closestn('address',10,undefined,50).map(f => f.feat).filter(addr => addr.properties['addr:street'] == feat.properties['STRAATNM'] && feat.properties['HNRLABEL'] == addr.properties['addr:housenumber'] + (addr.properties['addr:unit']??'') ).length", "_has_identical_closeby_address=feat.get('_closeby_addresses') >= 1 ? 'yes' : 'no'", "_embedded_in_grb=feat.overlapWith('grb')[0]?.feat?.properties ?? {}", "_embedding_nr_grb=feat.get('_embedded_in_grb')['addr:housenumber']", "_embedding_street_grb=feat.get('_embedded_in_grb')['addr:street']" ], "filter": [ { "id": "show_matched_addresses", "options": [ { "question": "Show all CRAB-addresses (including already matched ones)" }, { "question": "Only show unmatched addresses", "osmTags": { "and": [ "_has_identical_closeby_address!=yes", { "#": "Matches the embedding OSM object", "or": [ "_embedding_nr!:={HUISNR}", "_embedding_street!:={STRAATNM}" ] }, { "#": "Matches the embedding GRB object", "or": [ "_embedding_nr_grb!:={HUISNR}", "_embedding_street_grb!:={STRAATNM}" ] } ] }, "default": true } ] } ], "tagRenderings+": [ { "id": "render_embedded", "render": "Dit CRAB-adres ligt in OSM-gebouw {_embedding_id}", "mappings": [ { "if": "_embedding_id=", "then": { "nl": "Geen omliggend OSM-gebouw gevonden" } } ] }, { "id": "embedded_address", "render": "Het omliggende OSM-gebouw heeft geen volledig address", "mappings": [ { "if": { "and": [ "_embedding_street~*", "_embedding_nr~*" ] }, "then": "Het omliggende object met addres heeft {_embedding_street} {_embedding_nr}" } ], "condition": "_embedding_id~*" }, { "id": "apply-button", "render": "{tag_apply(addr:street=$STRAATNM; addr:housenumber=$_HNRLABEL,Apply this address on the OSM-building,,_embedding_id)}", "condition": { "and": [ "_embedding_id!=", { "or": [ "_embedding_street!:={STRAATNM}", "_embedding_nr!:={_HNRLABEL}" ] } ] } }, { "id": "import-button", "render": { "special": { "type": "import_button", "targetLayer": "address", "tags": "addr:street=$STRAATNM; addr:housenumber=$_HNRLABEL", "text": { "nl": "Voeg dit adres als een nieuw adrespunt toe" }, "snap_onto_layers": "osm-buildings" } }, "mappings": [ { "if": "_embedding_id=", "then": { "nl": "Geen omliggend OSM-gebouw gevonden. Een omliggend gebouw is nodig om dit punt als adres punt toe te voegen.