From bd1b0bbd5d185cba0796e4c8bb4e98f2cfb650bc Mon Sep 17 00:00:00 2001 From: Brian Hatchl Date: Thu, 8 Nov 2018 21:43:01 -0500 Subject: [PATCH] Closed way now assumes geom type Area if schema allows it (#2734) * failing tests identifying defects refs #2693 * Update README.md * Cleanup XXX, XXX2, XXX3 etc attributes (#2684) * Initial changes refs: #2683 * Test fixes. refs: #2683 * Test fix refs: #2683 * Append to dataset now appends (#2698) * Added flags to dataset opening refs: #2697 * Debugging added. refs: #2697 * Added a test refs: #2697 * Fixed copyright. refs: #2697 * add an area geometry situation for power tag refs #2683 * add test and post processor for riverbank refs #2693 * Fixed AK030 refs: #2693 * wip area translation fixes * test runway * comment out last tds->osm step * Updated the element converter to assign closed areas the polygon attribute * add F_CODE aliases, make waterway=riverbank only area, log attrs and geomType * set test with failing F_CODE/WCC combo for river * add aliases for all FCODES in schema * remove debug logging * enable passing tests * Created unit tests for ElementConverter and found some issues with OsmSchema::allowsFor() * add more translation tests, disable logging * don't translate timestamp to source:datetime for translation server * Schema changes for geometries (#2740) * Removed geometry from schema that don't describe geometries and updated OsmSchema::allowsFor() code to ignore empty geometries * Updated schema checker and copyright. * Add REST endpoint to describe current session user (#2724) * Add REST endpoint to describe current session user refs #2590 * add method for retrieving currently authenticated user * cleanup other user URIs * Add REST endpoint to describe current session user refs #2590 * simplify user serialization * make some URIs Content-Type aware for xml/json serialization * /user/ * /user/name/ * add deprecated annoation to getSaveUser * adjust use resource testing http status codes * copyright * Add REST endpoint to describe current session user refs #2590 * make OSM_API_DB public * fix bug that caused intermittent UI test failures * update auth proxy http parser to fix error HPE_UNEXPECTED_CONTENT_LENGTH * https://github.com/request/request/issues/2761 * https://github.com/creationix/http-parser-js * Remove renderdb creation and node-mapnik-server refs #2700 * update ui-test dom qualifier * remove inadvertent addition * advance hoot-ui commit hash * Add REST endpoint to describe current session user refs #2590 * advance hoot-ui commit hash * randomize test user's user_id to prevent possible conflicts with widely used -1 * Submodule hoot-ui a687db8...100a980 (commits not present) * Update VAGRANT.md * Add node conversion to GeometryConverter to fix cropping crash (#2738) * Add string comps and val aggs to info command (#2737) * add string comparison and value aggregator class descriptions to the info command * add manual match count to score-matches output (#2739) * Removed more schema geometries from non-geometric tags * Update copyright --- conf/schema/FCODE.json | 890 +++++++++--------- conf/schema/REF1.json | 7 +- conf/schema/REF2.json | 7 +- conf/schema/address.json | 6 - conf/schema/colour.json | 5 - conf/schema/contact.json | 5 - conf/schema/destination.json | 5 - conf/schema/ele.json | 5 - conf/schema/email.json | 5 - conf/schema/fire_hydrant.json | 4 - conf/schema/frequency.json | 5 - conf/schema/gauge.json | 5 - conf/schema/height.json | 5 - conf/schema/hoot_tags.json | 5 - conf/schema/is_in.json | 5 - conf/schema/lanes.json | 5 - conf/schema/maxspeed.json | 5 - conf/schema/metadata.json | 5 - conf/schema/name.json | 10 - conf/schema/note.json | 5 - conf/schema/opening_hours.json | 4 - conf/schema/source.json | 5 - conf/schema/url.json | 5 - conf/schema/waterway.json | 3 + conf/schema/website.json | 5 - conf/schema/width.json | 5 - conf/schema/wikipedia.json | 5 - .../hoot/core/util/ElementConverterTest.cpp | 230 +++++ .../src/main/cpp/hoot/core/elements/Way.cpp | 5 + .../src/main/cpp/hoot/core/elements/Way.h | 6 + .../main/cpp/hoot/core/schema/OsmSchema.cpp | 46 +- .../src/main/cpp/hoot/core/schema/OsmSchema.h | 62 +- .../cpp/hoot/core/schema/SchemaChecker.cpp | 23 +- .../main/cpp/hoot/core/schema/SchemaChecker.h | 7 +- .../cpp/hoot/core/util/ElementConverter.cpp | 6 +- plugins/TranslationServer.js | 2 + plugins/tds61.js | 11 +- plugins/test/basin_reservoir.js | 128 +++ plugins/test/source_datetime_tds61.js | 47 +- plugins/test/tag1.js | 51 + plugins/test/tests_to_fix.js | 102 ++ 41 files changed, 1095 insertions(+), 657 deletions(-) create mode 100644 hoot-core-test/src/test/cpp/hoot/core/util/ElementConverterTest.cpp create mode 100644 plugins/test/basin_reservoir.js create mode 100644 plugins/test/tag1.js create mode 100644 plugins/test/tests_to_fix.js diff --git a/conf/schema/FCODE.json b/conf/schema/FCODE.json index 2ecf0e99c0..a55124211b 100644 --- a/conf/schema/FCODE.json +++ b/conf/schema/FCODE.json @@ -1,451 +1,439 @@ -[ - { - "dataType": "enumeration", - "geometries": [ - "node", - "linestring", - "area" - ], - "influence": 1, - "name": "FCODE", - "objectType": "tag" - }, - {"name": "FCODE=AA010", "geometries": ["area", "node"], "description": "Extraction Mine", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AA011", "geometries": ["linestring"], "description": "Shear Wall", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AA012", "geometries": ["node", "area"], "description": "Quarry", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AA020", "geometries": ["node", "area"], "description": "Mine Shaft Superstructure", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AA040", "geometries": ["area", "node"], "description": "Rig", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AA045", "geometries": ["node"], "description": "Borehole", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AA050", "geometries": ["node"], "description": "Well", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AA052", "geometries": ["node", "area"], "description": "Hydrocarbons Field", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AA054", "geometries": ["node"], "description": "Non Water Well", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AB000", "geometries": ["area", "node"], "description": "Disposal Site", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AB010", "geometries": ["area"], "description": "Recycling Site", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AB021", "geometries": ["node"], "description": "Liquid Diffuser", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AB040", "geometries": ["area"], "description": "Aeration Basin", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AB507", "geometries": ["node", "area"], "description": "Waste Heap", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AC000", "geometries": ["area", "node"], "description": "Processing Facility", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AC010", "geometries": ["node", "area"], "description": "Blast Furnace", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AC020", "geometries": ["node", "area"], "description": "Catalytic Cracker", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AC030", "geometries": ["area", "node"], "description": "Settling Pond", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AC040", "geometries": ["area", "node"], "description": "Hydrocarbon Products Facility", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AC060", "geometries": ["node", "area"], "description": "Industrial Furnace", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AC507", "geometries": ["area", "node"], "description": "Sewage Treatment Plant", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AD010", "geometries": ["node", "area"], "description": "Electric Power Station", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AD020", "geometries": ["node", "area"], "description": "Solar Panel", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AD025", "geometries": ["area", "node"], "description": "Solar Farm", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AD030", "geometries": ["node", "area"], "description": "Power Substation", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AD041", "geometries": ["node", "area"], "description": "Nuclear Reactor Containment", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AD050", "geometries": ["node", "area"], "description": "Heating Facility", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AD055", "geometries": ["node", "area"], "description": "Cooling Facility", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AD060", "geometries": ["area", "node"], "description": "Wind Farm", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AF010", "geometries": ["node"], "description": "Smokestack", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AF020", "geometries": ["node", "linestring"], "description": "Conveyor", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AF021", "geometries": ["linestring", "node"], "description": "Bucket Elevator", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AF030", "geometries": ["node", "area"], "description": "Cooling Tower", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AF040", "geometries": ["node", "area"], "description": "Crane", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AF050", "geometries": ["linestring", "node"], "description": "Excavating Machine", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AF060", "geometries": ["area", "node"], "description": "Engine Test Cell", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AF070", "geometries": ["node"], "description": "Flare Pipe", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AF080", "geometries": ["node"], "description": "Hopper", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AG030", "geometries": ["area"], "description": "Shopping Complex", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AG040", "geometries": ["area"], "description": "Office Park", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AG050", "geometries": ["node"], "description": "Billboard", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AH025", "geometries": ["linestring", "area"], "description": "Engineered Earthwork", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AH050", "geometries": ["node", "area"], "description": "Fortification", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AH055", "geometries": ["area", "node"], "description": "Fortified Building", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AH060", "geometries": ["node", "area"], "description": "Underground Bunker", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AH070", "geometries": ["node"], "description": "Checkpoint", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AI020", "geometries": ["area"], "description": "Caravan Park", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AI021", "geometries": ["area"], "description": "Manufactured Home Park", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AI030", "geometries": ["node", "area"], "description": "Camp", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AJ010", "geometries": ["area"], "description": "Circular Irrigation System", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AJ030", "geometries": ["node", "area"], "description": "Holding Pen", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AJ050", "geometries": ["node", "area"], "description": "Windmill", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AJ051", "geometries": ["node"], "description": "Wind Turbine", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AJ055", "geometries": ["area", "node"], "description": "Water Mill", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AJ080", "geometries": ["node", "area"], "description": "Stable", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AJ085", "geometries": ["node", "area"], "description": "Barn", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AJ110", "geometries": ["node", "area"], "description": "Greenhouse", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK020", "geometries": ["node", "area", "linestring"], "description": "Amusement Park Attraction", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK030", "geometries": ["area", "node"], "description": "Amusement Park", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK040", "geometries": ["node", "area"], "description": "Sports Ground", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK060", "geometries": ["node", "area"], "description": "Camp Site", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK061", "geometries": ["area"], "description": "Picnic Site", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK070", "geometries": ["area"], "description": "Drive-in Theatre", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK080", "geometries": ["node", "linestring"], "description": "Outdoor Theatre Screen", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK090", "geometries": ["area"], "description": "Fairground", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK100", "geometries": ["area"], "description": "Golf Course", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK101", "geometries": ["area"], "description": "Golf Driving Range", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK110", "geometries": ["area", "node"], "description": "Grandstand", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK120", "geometries": ["area"], "description": "Park", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK121", "geometries": ["area", "node"], "description": "Lookout", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK130", "geometries": ["linestring", "area"], "description": "Racetrack", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK150", "geometries": ["node", "linestring"], "description": "Ski-jump", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK155", "geometries": ["area", "linestring"], "description": "Ski Run", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK160", "geometries": ["node", "area"], "description": "Stadium", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK161", "geometries": ["node"], "description": "Scoreboard", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK164", "geometries": ["area", "node"], "description": "Amphitheatre", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK170", "geometries": ["node", "area"], "description": "Swimming Pool", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK180", "geometries": ["node", "area"], "description": "Zoo", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AK190", "geometries": ["linestring", "area"], "description": "Recreational Pier", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL010", "geometries": ["node", "area"], "description": "Facility", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL011", "geometries": ["area", "node"], "description": "Installation", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL012", "geometries": ["node", "area"], "description": "Archaeological Site", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL013", "geometries": ["area", "node"], "description": "Building", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL014", "geometries": ["area", "node"], "description": "Non-building Structure", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL015", "geometries": ["area", "node"], "description": "General Building", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL017", "geometries": ["node"], "description": "Fire Hydrant", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL018", "geometries": ["area", "node", "linestring"], "description": "Building Superstructure", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL019", "geometries": ["node", "area"], "description": "Shed", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL020", "geometries": ["node", "area"], "description": "Built-Up Area", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL024", "geometries": ["area"], "description": "Neighbourhood", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL025", "geometries": ["node"], "description": "Cairn", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL030", "geometries": ["node", "area"], "description": "Cemetery", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL036", "geometries": ["node", "area"], "description": "Tomb", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL060", "geometries": ["linestring", "area"], "description": "Dragons Teeth", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL065", "geometries": ["area"], "description": "Minefield", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL070", "geometries": ["linestring"], "description": "Fence", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL073", "geometries": ["node"], "description": "Flagpole", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL080", "geometries": ["node", "linestring"], "description": "Gantry", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL099", "geometries": ["area", "node"], "description": "Hut", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL105", "geometries": ["node", "area"], "description": "Settlement", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL110", "geometries": ["node"], "description": "Light Support Structure", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL120", "geometries": ["node", "area"], "description": "Missile Site", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL121", "geometries": ["area", "node"], "description": "Anti Aircraft Artillery Site", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL130", "geometries": ["linestring", "node", "area"], "description": "Memorial Monument", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL140", "geometries": ["node", "area", "linestring"], "description": "Particle Accelerator", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL142", "geometries": ["node", "area"], "description": "Astronomical Observatory", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL155", "geometries": ["linestring", "node"], "description": "Overhead Obstruction", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL165", "geometries": ["node"], "description": "Pipeline Crossing Point", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL170", "geometries": ["node", "area"], "description": "Public Square", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL175", "geometries": ["area"], "description": "Courtyard", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL180", "geometries": ["area"], "description": "Retail Stand", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL195", "geometries": ["area", "linestring"], "description": "Ramp", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL200", "geometries": ["area", "node"], "description": "Ruins", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL201", "geometries": ["area", "node"], "description": "Interest Site", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL208", "geometries": ["node", "area"], "description": "Shanty Town", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL210", "geometries": ["node", "linestring"], "description": "Protection Shed", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL211", "geometries": ["linestring", "node", "area"], "description": "Transportation Route Protection Structure", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL241", "geometries": ["area", "node"], "description": "Tower", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL250", "geometries": ["node"], "description": "Underground Dwelling", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL260", "geometries": ["linestring"], "description": "Wall", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL270", "geometries": ["node", "area"], "description": "Industrial Farm", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL351", "geometries": ["node", "area"], "description": "Space Facility", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL371", "geometries": ["area", "node"], "description": "Manor House", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL375", "geometries": ["node", "area"], "description": "Castle", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL376", "geometries": ["node", "area"], "description": "Castle Complex", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AL510", "geometries": ["node"], "description": "Tethered Balloon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AM010", "geometries": ["area", "node"], "description": "Storage Depot", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AM011", "geometries": ["area", "node"], "description": "Shipping Container", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AM020", "geometries": ["node", "area"], "description": "Grain Storage Structure", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AM030", "geometries": ["area", "node"], "description": "Grain Elevator", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AM040", "geometries": ["node", "area"], "description": "Mineral Pile", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AM060", "geometries": ["node", "area"], "description": "Surface Bunker", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AM065", "geometries": ["node", "area"], "description": "Munition Storage Facility", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AM070", "geometries": ["node", "area"], "description": "Storage Tank", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AM071", "geometries": ["node", "area"], "description": "Tank Farm", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AM075", "geometries": ["node", "area"], "description": "Fuel Storage Facility", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AM080", "geometries": ["area", "node"], "description": "Water Tower", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AN010", "geometries": ["linestring"], "description": "Railway", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AN050", "geometries": ["linestring"], "description": "Railway Sidetrack", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AN060", "geometries": ["area", "node"], "description": "Railway Yard", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AN075", "geometries": ["node", "area"], "description": "Railway Turntable", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AN076", "geometries": ["node", "area"], "description": "Roundhouse", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AN085", "geometries": ["node"], "description": "Railway Signal", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AP010", "geometries": ["linestring"], "description": "Cart Track", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AP020", "geometries": ["node"], "description": "Road Interchange", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AP030", "geometries": ["linestring", "area"], "description": "Road", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AP033", "geometries": ["node"], "description": "Engineered Turnaround Site", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AP040", "geometries": ["node", "linestring"], "description": "Gate", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AP041", "geometries": ["node", "linestring"], "description": "Vehicle Barrier", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AP050", "geometries": ["linestring"], "description": "Trail", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AP055", "geometries": ["area", "linestring"], "description": "Tank Trail", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AP056", "geometries": ["node", "area"], "description": "Tank Crossing", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ035", "geometries": ["linestring"], "description": "Sidewalk", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ040", "geometries": ["node", "linestring", "area"], "description": "Bridge", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ045", "geometries": ["node", "linestring", "area"], "description": "Bridge Span", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ050", "geometries": ["linestring", "area"], "description": "Bridge Superstructure", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ055", "geometries": ["node"], "description": "Bridge Tower", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ056", "geometries": ["area", "node", "linestring"], "description": "Bridge Pier", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ059", "geometries": ["linestring", "node"], "description": "Transportation Route Characteristic Change", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ060", "geometries": ["area", "node"], "description": "Control Tower", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ062", "geometries": ["node"], "description": "Crossing", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ063", "geometries": ["area", "linestring"], "description": "Causeway Structure", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ065", "geometries": ["node", "linestring"], "description": "Culvert", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ068", "geometries": ["area", "node"], "description": "Transportation Block", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ070", "geometries": ["node", "linestring"], "description": "Ferry Crossing", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ075", "geometries": ["linestring"], "description": "Ice Route", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ080", "geometries": ["area", "node"], "description": "Ferry Station", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ090", "geometries": ["node"], "description": "Entrance and/or Exit", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ095", "geometries": ["node"], "description": "Tunnel Mouth", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ110", "geometries": ["node"], "description": "Mooring Mast", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ111", "geometries": ["linestring", "node"], "description": "Prepared Watercourse Crossing", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ113", "geometries": ["linestring"], "description": "Pipeline", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ114", "geometries": ["node"], "description": "Storm Drain", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ115", "geometries": ["node"], "description": "Utility Access Point", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ116", "geometries": ["node", "area"], "description": "Pumping Station", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ118", "geometries": ["node"], "description": "Sharp Curve", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ120", "geometries": ["linestring"], "description": "Steep Grade", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ125", "geometries": ["node", "area"], "description": "Transportation Station", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ130", "geometries": ["linestring", "area"], "description": "Tunnel", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ135", "geometries": ["node", "area"], "description": "Roadside Rest Area", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ140", "geometries": ["area"], "description": "Vehicle Lot", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ141", "geometries": ["node", "area"], "description": "Parking Garage", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ150", "geometries": ["linestring", "area"], "description": "Stair", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ151", "geometries": ["area", "linestring"], "description": "Arcade", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ160", "geometries": ["node"], "description": "Traffic Light", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ161", "geometries": ["node"], "description": "Street Lamp", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ162", "geometries": ["node"], "description": "Street Sign", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ170", "geometries": ["node", "area"], "description": "Motor Vehicle Station", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AQ180", "geometries": ["node", "area"], "description": "Weigh Station", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AT005", "geometries": ["linestring"], "description": "Cable", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AT010", "geometries": ["node"], "description": "Dish Aerial", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AT011", "geometries": ["node"], "description": "Aerial", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AT012", "geometries": ["node", "area"], "description": "Aerial Farm", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AT030", "geometries": ["linestring"], "description": "Power Line", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AT041", "geometries": ["linestring"], "description": "Cableway", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AT042", "geometries": ["node"], "description": "Pylon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AT045", "geometries": ["area", "node"], "description": "Radar Station", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AT050", "geometries": ["area"], "description": "Communication Station", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=AT060", "geometries": ["linestring"], "description": "Communication Line", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BA010", "geometries": ["linestring"], "description": "Land Water Boundary", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BA023", "geometries": ["area"], "description": "Foreshore", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BA024", "geometries": ["linestring"], "description": "Shoreline", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BA030", "geometries": ["area", "node"], "description": "Island", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BA040", "geometries": ["area"], "description": "Tidal Water", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BA050", "geometries": ["node", "area"], "description": "Beach", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB005", "geometries": ["area"], "description": "Harbour", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB008", "geometries": ["area"], "description": "Harbour Waters", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB009", "geometries": ["area", "node"], "description": "Port", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB010", "geometries": ["area", "node"], "description": "Anchorage", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB019", "geometries": ["node"], "description": "Anchor", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB020", "geometries": ["node"], "description": "Berth", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB041", "geometries": ["linestring", "area"], "description": "Breakwater", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB043", "geometries": ["linestring", "area"], "description": "Groin", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB050", "geometries": ["node"], "description": "Calling In Point", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB080", "geometries": ["node"], "description": "Dolphin", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB081", "geometries": ["linestring", "area"], "description": "Shoreline Construction", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB082", "geometries": ["linestring", "area"], "description": "Shoreline Ramp", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB090", "geometries": ["area"], "description": "Dry Dock", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB100", "geometries": ["linestring"], "description": "Fishing Stakes", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB110", "geometries": ["area", "node"], "description": "Fish Weir", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB115", "geometries": ["area"], "description": "Nautical Gridiron", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB140", "geometries": ["linestring", "area"], "description": "Training Wall", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB150", "geometries": ["node", "area"], "description": "Beach Landing Site", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB155", "geometries": ["node"], "description": "Maritime Signal Station", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB190", "geometries": ["linestring", "area"], "description": "Berthing Structure", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB199", "geometries": ["area"], "description": "Floating Dry Dock", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB201", "geometries": ["node", "area"], "description": "Small Craft Facility", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB230", "geometries": ["linestring"], "description": "Seawall", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB240", "geometries": ["area"], "description": "Slipway", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BB241", "geometries": ["node", "area"], "description": "Shipyard", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BC010", "geometries": ["node"], "description": "Maritime Navigation Beacon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BC020", "geometries": ["node"], "description": "Buoy", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BC034", "geometries": ["node"], "description": "Maritime Radiobeacon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BC040", "geometries": ["node"], "description": "Maritime Navigation Light", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BC041", "geometries": ["node"], "description": "Maritime Nav Light Support", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BC050", "geometries": ["node", "area"], "description": "Lighthouse", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BC055", "geometries": ["node"], "description": "Maritime Navigation Marker", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BC060", "geometries": ["node"], "description": "Light Sector", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BC070", "geometries": ["node"], "description": "Light Vessel", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BC080", "geometries": ["node"], "description": "Insubstantial Nav Mark", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BD020", "geometries": ["node", "area"], "description": "Crib", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BD030", "geometries": ["node", "area"], "description": "Discoloured Water", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BD050", "geometries": ["node", "area"], "description": "Foul Ground", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BD061", "geometries": ["area", "node"], "description": "Aquatic Vegetation", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BD100", "geometries": ["node", "area"], "description": "Structural Pile", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BD110", "geometries": ["node"], "description": "Offshore Platform", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BD115", "geometries": ["node", "area"], "description": "Offshore Construction", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BD120", "geometries": ["area", "linestring"], "description": "Reef", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BD130", "geometries": ["node"], "description": "Hazardous Rock", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BD140", "geometries": ["node", "area"], "description": "Snag", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BD180", "geometries": ["node", "area"], "description": "Wreck", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BD181", "geometries": ["node"], "description": "Hulk", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BE010", "geometries": ["linestring"], "description": "Depth Curve", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BE015", "geometries": ["linestring"], "description": "Depth Contour", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BE019", "geometries": ["area"], "description": "Depth Area", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BE020", "geometries": ["node"], "description": "Sounding", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BE050", "geometries": ["linestring"], "description": "Beach Profile", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BF010", "geometries": ["node", "area"], "description": "Bottom Character Region", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BG012", "geometries": ["area", "linestring", "node"], "description": "Water Turbulence", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BG030", "geometries": ["node"], "description": "Tidal Stream Observe Station", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH010", "geometries": ["linestring", "area", "node"], "description": "Aqueduct", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH012", "geometries": ["node"], "description": "Qanat Shaft", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH015", "geometries": ["area"], "description": "Bog", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH020", "geometries": ["linestring", "area"], "description": "Canal", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH030", "geometries": ["linestring", "area"], "description": "Ditch", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH040", "geometries": ["area"], "description": "Water Treatment Bed", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH050", "geometries": ["area"], "description": "Mariculture Site", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH051", "geometries": ["area", "node"], "description": "Fish Farm Facility", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH060", "geometries": ["linestring"], "description": "Flume", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH065", "geometries": ["linestring"], "description": "Water Race", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH070", "geometries": ["node", "area", "linestring"], "description": "Ford", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH075", "geometries": ["area", "node"], "description": "Fountain", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH077", "geometries": ["area"], "description": "Hummock", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH080", "geometries": ["area"], "description": "Lake", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH082", "geometries": ["node", "area"], "description": "Inland Waterbody", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH090", "geometries": ["area"], "description": "Land Subject to Inundation", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH100", "geometries": ["linestring", "area"], "description": "Moat", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH110", "geometries": ["linestring"], "description": "Penstock", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH116", "geometries": ["area"], "description": "Aquifer", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH120", "geometries": ["node", "linestring", "area"], "description": "Rapids", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH130", "geometries": ["area"], "description": "Reservoir", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH135", "geometries": ["area"], "description": "Rice Field", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH140", "geometries": ["linestring", "area"], "description": "River", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH145", "geometries": ["node"], "description": "Vanishing Point", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH150", "geometries": ["area"], "description": "Salt Flat", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH155", "geometries": ["area", "node"], "description": "Salt Evaporator", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH160", "geometries": ["area"], "description": "Sabkha", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH165", "geometries": ["linestring", "area"], "description": "Spillway", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH170", "geometries": ["area", "node"], "description": "Natural Pool", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH180", "geometries": ["node", "linestring"], "description": "Waterfall", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH190", "geometries": ["area"], "description": "Lagoon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH220", "geometries": ["node", "area"], "description": "Waterwork", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BH230", "geometries": ["node", "area"], "description": "Water Well", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BI005", "geometries": ["area"], "description": "Vessel Lift", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BI006", "geometries": ["node", "linestring"], "description": "Ship Elevator", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BI010", "geometries": ["node"], "description": "Cistern", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BI020", "geometries": ["linestring", "area", "node"], "description": "Dam", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BI030", "geometries": ["linestring", "node", "area"], "description": "Lock", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BI040", "geometries": ["node", "linestring"], "description": "Sluice Gate", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BI041", "geometries": ["linestring", "node"], "description": "Water Gate", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BI044", "geometries": ["node", "linestring", "area"], "description": "Flood Control Structure", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BI045", "geometries": ["node", "linestring"], "description": "Basin Gate", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BI050", "geometries": ["area", "node"], "description": "Water Intake Tower", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BI060", "geometries": ["linestring"], "description": "Fish Ladder", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BI070", "geometries": ["node"], "description": "Gauging Station", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BJ020", "geometries": ["area"], "description": "Moraine", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BJ030", "geometries": ["area"], "description": "Glacier", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BJ031", "geometries": ["area", "linestring"], "description": "Crevasse", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BJ040", "geometries": ["linestring"], "description": "Ice Cliff", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BJ060", "geometries": ["node"], "description": "Ice Peak", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BJ065", "geometries": ["area"], "description": "Ice Shelf", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BJ070", "geometries": ["linestring", "area"], "description": "Pack Ice", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BJ080", "geometries": ["area"], "description": "Polar Ice", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BJ099", "geometries": ["area"], "description": "Ice Cap", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BJ100", "geometries": ["area"], "description": "Snow Field and/or Ice-field", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=BJ110", "geometries": ["area"], "description": "Tundra", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=CA010", "geometries": ["linestring"], "description": "Elevation Contour", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=CA030", "geometries": ["node"], "description": "Spot Elevation", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DA005", "geometries": ["area"], "description": "Asphalt Lake", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DA010", "geometries": ["area"], "description": "Soil Surface Region", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB010", "geometries": ["linestring"], "description": "Steep Terrain Face", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB028", "geometries": ["area"], "description": "Cave Chamber", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB029", "geometries": ["node"], "description": "Cave Mouth", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB061", "geometries": ["linestring", "area"], "description": "Crevice", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB070", "geometries": ["linestring"], "description": "Cut", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB071", "geometries": ["linestring"], "description": "Cut Line", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB080", "geometries": ["node", "area"], "description": "Depression", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB090", "geometries": ["area", "linestring"], "description": "Embankment", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB100", "geometries": ["linestring"], "description": "Esker", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB110", "geometries": ["linestring"], "description": "Geologic Fault", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB115", "geometries": ["area", "node"], "description": "Geothermal Outlet", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB150", "geometries": ["node"], "description": "Mountain Pass", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB160", "geometries": ["area", "linestring", "node"], "description": "Rock Formation", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB170", "geometries": ["area"], "description": "Sand Dunes", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB180", "geometries": ["node", "area"], "description": "Volcano", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB185", "geometries": ["node", "area"], "description": "Crater", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB190", "geometries": ["linestring"], "description": "Volcanic Dyke", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB200", "geometries": ["area", "linestring"], "description": "Gully", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=DB211", "geometries": ["area"], "description": "Landslide Mass", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EA010", "geometries": ["area"], "description": "Crop Land", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EA020", "geometries": ["linestring"], "description": "Hedgerow", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EA030", "geometries": ["area"], "description": "Plant Nursery", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EA031", "geometries": ["area"], "description": "Botanic Garden", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EA040", "geometries": ["node", "area"], "description": "Orchard", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EA050", "geometries": ["area", "node"], "description": "Vineyard", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EA055", "geometries": ["area"], "description": "Hop Field", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EB010", "geometries": ["area"], "description": "Grassland", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EB020", "geometries": ["area"], "description": "Thicket", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EB070", "geometries": ["area"], "description": "Brush", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EC005", "geometries": ["node"], "description": "Tree", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EC010", "geometries": ["area"], "description": "Cane", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EC015", "geometries": ["area", "linestring"], "description": "Forest", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EC020", "geometries": ["node", "area"], "description": "Oasis", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EC030", "geometries": ["node", "linestring", "area"], "description": "Wood", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EC040", "geometries": ["linestring", "area"], "description": "Cleared Way", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EC050", "geometries": ["area", "node"], "description": "Grove", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EC060", "geometries": ["area"], "description": "Forest Clearing", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ED010", "geometries": ["area"], "description": "Marsh", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ED020", "geometries": ["area"], "description": "Swamp", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ED030", "geometries": ["area"], "description": "Mangrove Swamp", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EE010", "geometries": ["area"], "description": "Logging Site", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=EE030", "geometries": ["area"], "description": "Desert", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FA000", "geometries": ["linestring"], "description": "Administrative Boundary", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FA002", "geometries": ["area"], "description": "Geopolitical Entity", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FA003", "geometries": ["area"], "description": "Administrative Subdivision", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FA012", "geometries": ["node", "area"], "description": "Contaminated Region", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FA015", "geometries": ["node", "area"], "description": "Firing Range", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FA090", "geometries": ["linestring"], "description": "Geophysical Prospecting Grid", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FA100", "geometries": ["area"], "description": "Test Site", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FA110", "geometries": ["linestring"], "description": "International Date Line", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FA165", "geometries": ["area", "node"], "description": "Training Site", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FA210", "geometries": ["area"], "description": "Conservation Area", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FC021", "geometries": ["linestring"], "description": "Maritime Limit", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FC034", "geometries": ["area"], "description": "Dredged Area", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FC035", "geometries": ["area"], "description": "Waterbody Divider", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FC037", "geometries": ["area"], "description": "Maritime Caution Area", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FC041", "geometries": ["area", "node", "linestring"], "description": "Traffic Separation Scheme", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FC100", "geometries": ["linestring"], "description": "Measured Distance Line", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FC130", "geometries": ["linestring"], "description": "Maritime Radar Ref Line", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FC165", "geometries": ["area", "linestring"], "description": "Maritime Route", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=FC177", "geometries": ["area"], "description": "Swept Area", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=GA033", "geometries": ["node"], "description": "Aero Radio Nav Installation", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=GA034", "geometries": ["node"], "description": "Aeronautical Radio Navigation Service", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=GB005", "geometries": ["node", "area"], "description": "Land Aerodrome", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=GB013", "geometries": ["node"], "description": "Aerodrome Beacon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=GB015", "geometries": ["area"], "description": "Apron", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=GB030", "geometries": ["area", "node"], "description": "Helipad", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=GB035", "geometries": ["area", "node"], "description": "Heliport", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=GB040", "geometries": ["area", "node"], "description": "Launch Pad", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=GB045", "geometries": ["area"], "description": "Stopway", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=GB050", "geometries": ["linestring", "node"], "description": "Aircraft Revetment", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=GB055", "geometries": ["area"], "description": "Runway", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=GB065", "geometries": ["node", "area"], "description": "Water Aerodrome", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=GB070", "geometries": ["area"], "description": "Seaplane Run", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=GB075", "geometries": ["linestring", "area"], "description": "Taxiway", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=GB220", "geometries": ["node"], "description": "Aeronautical Obstacle", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=GB230", "geometries": ["node", "area"], "description": "Aircraft Hangar", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=GB250", "geometries": ["area", "node"], "description": "Hardened Aircraft Shelter", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=GB485", "geometries": ["node"], "description": "Approach Lighting System", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=IA040", "geometries": ["area"], "description": "Land Parcel", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=NA170", "geometries": ["area"], "description": "Drainage Basin", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=NM010", "geometries": ["area"], "description": "Aqueduct Aon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=NM020", "geometries": ["area"], "description": "Navigable Canal Aon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=NM030", "geometries": ["area"], "description": "Ditch Aon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=NM082", "geometries": ["area"], "description": "Inland Waterbody Aon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=NM140", "geometries": ["area"], "description": "River Aon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=NM160", "geometries": ["area"], "description": "Sabkha Aon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=NM170", "geometries": ["area"], "description": "Natural Pool Aon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=NM230", "geometries": ["area"], "description": "Water Well Aon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=NU010", "geometries": ["area"], "description": "Cistern Aon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=NU070", "geometries": ["area"], "description": "Storage Tank Aon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=NU113", "geometries": ["area"], "description": "Pipeline Aon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=NU116", "geometries": ["area"], "description": "Pumping Station Aon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=NU170", "geometries": ["area"], "description": "Swimming Pool Aon", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=SA050", "geometries": ["area"], "description": "Slope Region", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=STB23", "geometries": ["node", "area"], "description": "Landing Zone", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=STBM1", "geometries": ["linestring"], "description": "Military Boundary", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=STDPP", "geometries": ["node"], "description": "Standpipe", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=SU001", "geometries": ["area", "node"], "description": "Military Installation", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=SU004", "geometries": ["area"], "description": "Cantonment Area", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=SU030", "geometries": ["linestring"], "description": "Installation Boundary", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=T0181", "geometries": ["node"], "description": "Pump", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ZB020", "geometries": ["node"], "description": "Benchmark", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ZB030", "geometries": ["node"], "description": "Boundary Monument", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ZB035", "geometries": ["node"], "description": "Control Point", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ZB036", "geometries": ["node"], "description": "Distance Mark", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ZB050", "geometries": ["node"], "description": "Survey Point", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ZB060", "geometries": ["node"], "description": "Geodetic Point", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ZC040", "geometries": ["area"], "description": "Local Magnetic Anomaly", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ZD020", "geometries": ["area"], "description": "Void Collection Area", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ZD030", "geometries": ["area", "node"], "description": "Cultural Context Location", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ZD040", "geometries": ["area", "node", "linestring"], "description": "Named Location", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ZD045", "geometries": ["area", "node", "linestring"], "description": "Annotated Location", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ZD070", "geometries": ["area", "node"], "description": "Water Measurement Location", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ZI031", "geometries": ["area"], "description": "Dataset", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ZI039", "geometries": ["area"], "description": "Entity Collection Metadata", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ZI040", "geometries": ["area"], "description": "Spatial Metadata Entity Collection", "isA": "FCODE", "objectType": "tag"}, - {"name": "FCODE=ZI041", "geometries": ["area"], "description": "Non-spatial Metadata Entity Collection", "isA": "FCODE", "objectType": "tag"} -] \ No newline at end of file +[{"dataType":"enumeration","geometries":["node","linestring","area"],"influence":1,"name":"FCODE","objectType":"tag","aliases":["F_CODE"]}, +{"name":"FCODE=AA010","geometries":["area","node"],"description":"Extraction Mine","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AA010"]}, +{"name":"FCODE=AA011","geometries":["linestring"],"description":"Shear Wall","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AA011"]}, +{"name":"FCODE=AA012","geometries":["node","area"],"description":"Quarry","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AA012"]}, +{"name":"FCODE=AA020","geometries":["node","area"],"description":"Mine Shaft Superstructure","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AA020"]}, +{"name":"FCODE=AA040","geometries":["area","node"],"description":"Rig","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AA040"]}, +{"name":"FCODE=AA045","geometries":["node"],"description":"Borehole","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AA045"]}, +{"name":"FCODE=AA050","geometries":["node"],"description":"Well","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AA050"]}, +{"name":"FCODE=AA052","geometries":["node","area"],"description":"Hydrocarbons Field","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AA052"]}, +{"name":"FCODE=AA054","geometries":["node"],"description":"Non Water Well","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AA054"]}, +{"name":"FCODE=AB000","geometries":["area","node"],"description":"Disposal Site","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AB000"]}, +{"name":"FCODE=AB010","geometries":["area"],"description":"Recycling Site","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AB010"]}, +{"name":"FCODE=AB021","geometries":["node"],"description":"Liquid Diffuser","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AB021"]}, +{"name":"FCODE=AB040","geometries":["area"],"description":"Aeration Basin","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AB040"]}, +{"name":"FCODE=AB507","geometries":["node","area"],"description":"Waste Heap","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AB507"]}, +{"name":"FCODE=AC000","geometries":["area","node"],"description":"Processing Facility","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AC000"]}, +{"name":"FCODE=AC010","geometries":["node","area"],"description":"Blast Furnace","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AC010"]}, +{"name":"FCODE=AC020","geometries":["node","area"],"description":"Catalytic Cracker","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AC020"]}, +{"name":"FCODE=AC030","geometries":["area","node"],"description":"Settling Pond","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AC030"]}, +{"name":"FCODE=AC040","geometries":["area","node"],"description":"Hydrocarbon Products Facility","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AC040"]}, +{"name":"FCODE=AC060","geometries":["node","area"],"description":"Industrial Furnace","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AC060"]}, +{"name":"FCODE=AC507","geometries":["area","node"],"description":"Sewage Treatment Plant","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AC507"]}, +{"name":"FCODE=AD010","geometries":["node","area"],"description":"Electric Power Station","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AD010"]}, +{"name":"FCODE=AD020","geometries":["node","area"],"description":"Solar Panel","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AD020"]}, +{"name":"FCODE=AD025","geometries":["area","node"],"description":"Solar Farm","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AD025"]}, +{"name":"FCODE=AD030","geometries":["node","area"],"description":"Power Substation","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AD030"]}, +{"name":"FCODE=AD041","geometries":["node","area"],"description":"Nuclear Reactor Containment","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AD041"]}, +{"name":"FCODE=AD050","geometries":["node","area"],"description":"Heating Facility","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AD050"]}, +{"name":"FCODE=AD055","geometries":["node","area"],"description":"Cooling Facility","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AD055"]}, +{"name":"FCODE=AD060","geometries":["area","node"],"description":"Wind Farm","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AD060"]}, +{"name":"FCODE=AF010","geometries":["node"],"description":"Smokestack","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AF010"]}, +{"name":"FCODE=AF020","geometries":["node","linestring"],"description":"Conveyor","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AF020"]}, +{"name":"FCODE=AF021","geometries":["linestring","node"],"description":"Bucket Elevator","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AF021"]}, +{"name":"FCODE=AF030","geometries":["node","area"],"description":"Cooling Tower","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AF030"]}, +{"name":"FCODE=AF040","geometries":["node","area"],"description":"Crane","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AF040"]}, +{"name":"FCODE=AF050","geometries":["linestring","node"],"description":"Excavating Machine","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AF050"]}, +{"name":"FCODE=AF060","geometries":["area","node"],"description":"Engine Test Cell","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AF060"]}, +{"name":"FCODE=AF070","geometries":["node"],"description":"Flare Pipe","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AF070"]}, +{"name":"FCODE=AF080","geometries":["node"],"description":"Hopper","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AF080"]}, +{"name":"FCODE=AG030","geometries":["area"],"description":"Shopping Complex","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AG030"]}, +{"name":"FCODE=AG040","geometries":["area"],"description":"Office Park","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AG040"]}, +{"name":"FCODE=AG050","geometries":["node"],"description":"Billboard","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AG050"]}, +{"name":"FCODE=AH025","geometries":["linestring","area"],"description":"Engineered Earthwork","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AH025"]}, +{"name":"FCODE=AH050","geometries":["node","area"],"description":"Fortification","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AH050"]}, +{"name":"FCODE=AH055","geometries":["area","node"],"description":"Fortified Building","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AH055"]}, +{"name":"FCODE=AH060","geometries":["node","area"],"description":"Underground Bunker","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AH060"]}, +{"name":"FCODE=AH070","geometries":["node"],"description":"Checkpoint","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AH070"]}, +{"name":"FCODE=AI020","geometries":["area"],"description":"Caravan Park","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AI020"]}, +{"name":"FCODE=AI021","geometries":["area"],"description":"Manufactured Home Park","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AI021"]}, +{"name":"FCODE=AI030","geometries":["node","area"],"description":"Camp","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AI030"]}, +{"name":"FCODE=AJ010","geometries":["area"],"description":"Circular Irrigation System","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AJ010"]}, +{"name":"FCODE=AJ030","geometries":["node","area"],"description":"Holding Pen","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AJ030"]}, +{"name":"FCODE=AJ050","geometries":["node","area"],"description":"Windmill","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AJ050"]}, +{"name":"FCODE=AJ051","geometries":["node"],"description":"Wind Turbine","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AJ051"]}, +{"name":"FCODE=AJ055","geometries":["area","node"],"description":"Water Mill","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AJ055"]}, +{"name":"FCODE=AJ080","geometries":["node","area"],"description":"Stable","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AJ080"]}, +{"name":"FCODE=AJ085","geometries":["node","area"],"description":"Barn","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AJ085"]}, +{"name":"FCODE=AJ110","geometries":["node","area"],"description":"Greenhouse","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AJ110"]}, +{"name":"FCODE=AK020","geometries":["node","area","linestring"],"description":"Amusement Park Attraction","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK020"]}, +{"name":"FCODE=AK030","geometries":["area","node"],"description":"Amusement Park","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK030"]}, +{"name":"FCODE=AK040","geometries":["node","area"],"description":"Sports Ground","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK040"]}, +{"name":"FCODE=AK060","geometries":["node","area"],"description":"Camp Site","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK060"]}, +{"name":"FCODE=AK061","geometries":["area"],"description":"Picnic Site","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK061"]}, +{"name":"FCODE=AK070","geometries":["area"],"description":"Drive-in Theatre","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK070"]}, +{"name":"FCODE=AK080","geometries":["node","linestring"],"description":"Outdoor Theatre Screen","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK080"]}, +{"name":"FCODE=AK090","geometries":["area"],"description":"Fairground","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK090"]}, +{"name":"FCODE=AK100","geometries":["area"],"description":"Golf Course","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK100"]}, +{"name":"FCODE=AK101","geometries":["area"],"description":"Golf Driving Range","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK101"]}, +{"name":"FCODE=AK110","geometries":["area","node"],"description":"Grandstand","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK110"]}, +{"name":"FCODE=AK120","geometries":["area"],"description":"Park","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK120"]}, +{"name":"FCODE=AK121","geometries":["area","node"],"description":"Lookout","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK121"]}, +{"name":"FCODE=AK130","geometries":["linestring","area"],"description":"Racetrack","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK130"]}, +{"name":"FCODE=AK150","geometries":["node","linestring"],"description":"Ski-jump","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK150"]}, +{"name":"FCODE=AK155","geometries":["area","linestring"],"description":"Ski Run","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK155"]}, +{"name":"FCODE=AK160","geometries":["node","area"],"description":"Stadium","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK160"]}, +{"name":"FCODE=AK161","geometries":["node"],"description":"Scoreboard","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK161"]}, +{"name":"FCODE=AK164","geometries":["area","node"],"description":"Amphitheatre","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK164"]}, +{"name":"FCODE=AK170","geometries":["node","area"],"description":"Swimming Pool","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK170"]}, +{"name":"FCODE=AK180","geometries":["node","area"],"description":"Zoo","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK180"]}, +{"name":"FCODE=AK190","geometries":["linestring","area"],"description":"Recreational Pier","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AK190"]}, +{"name":"FCODE=AL010","geometries":["node","area"],"description":"Facility","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL010"]}, +{"name":"FCODE=AL011","geometries":["area","node"],"description":"Installation","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL011"]}, +{"name":"FCODE=AL012","geometries":["node","area"],"description":"Archaeological Site","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL012"]}, +{"name":"FCODE=AL013","aliases":["F_CODE=AL013"],"geometries":["area","node"],"description":"Building","isA":"FCODE","objectType":"tag"}, +{"name":"FCODE=AL014","geometries":["area","node"],"description":"Non-building Structure","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL014"]}, +{"name":"FCODE=AL015","geometries":["area","node"],"description":"General Building","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL015"]}, +{"name":"FCODE=AL017","geometries":["node"],"description":"Fire Hydrant","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL017"]}, +{"name":"FCODE=AL018","geometries":["area","node","linestring"],"description":"Building Superstructure","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL018"]}, +{"name":"FCODE=AL019","geometries":["node","area"],"description":"Shed","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL019"]}, +{"name":"FCODE=AL020","geometries":["node","area"],"description":"Built-Up Area","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL020"]}, +{"name":"FCODE=AL024","geometries":["area"],"description":"Neighbourhood","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL024"]}, +{"name":"FCODE=AL025","geometries":["node"],"description":"Cairn","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL025"]}, +{"name":"FCODE=AL030","geometries":["node","area"],"description":"Cemetery","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL030"]}, +{"name":"FCODE=AL036","geometries":["node","area"],"description":"Tomb","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL036"]}, +{"name":"FCODE=AL060","geometries":["linestring","area"],"description":"Dragons Teeth","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL060"]}, +{"name":"FCODE=AL065","geometries":["area"],"description":"Minefield","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL065"]}, +{"name":"FCODE=AL070","geometries":["linestring"],"description":"Fence","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL070"]}, +{"name":"FCODE=AL073","geometries":["node"],"description":"Flagpole","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL073"]}, +{"name":"FCODE=AL080","geometries":["node","linestring"],"description":"Gantry","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL080"]}, +{"name":"FCODE=AL099","geometries":["area","node"],"description":"Hut","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL099"]}, +{"name":"FCODE=AL105","geometries":["node","area"],"description":"Settlement","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL105"]}, +{"name":"FCODE=AL110","geometries":["node"],"description":"Light Support Structure","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL110"]}, +{"name":"FCODE=AL120","geometries":["node","area"],"description":"Missile Site","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL120"]}, +{"name":"FCODE=AL121","geometries":["area","node"],"description":"Anti Aircraft Artillery Site","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL121"]}, +{"name":"FCODE=AL130","geometries":["linestring","node","area"],"description":"Memorial Monument","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL130"]}, +{"name":"FCODE=AL140","geometries":["node","area","linestring"],"description":"Particle Accelerator","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL140"]}, +{"name":"FCODE=AL142","geometries":["node","area"],"description":"Astronomical Observatory","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL142"]}, +{"name":"FCODE=AL155","geometries":["linestring","node"],"description":"Overhead Obstruction","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL155"]}, +{"name":"FCODE=AL165","geometries":["node"],"description":"Pipeline Crossing Point","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL165"]}, +{"name":"FCODE=AL170","geometries":["node","area"],"description":"Public Square","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL170"]}, +{"name":"FCODE=AL175","geometries":["area"],"description":"Courtyard","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL175"]}, +{"name":"FCODE=AL180","geometries":["area"],"description":"Retail Stand","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL180"]}, +{"name":"FCODE=AL195","geometries":["area","linestring"],"description":"Ramp","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL195"]}, +{"name":"FCODE=AL200","geometries":["area","node"],"description":"Ruins","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL200"]}, +{"name":"FCODE=AL201","geometries":["area","node"],"description":"Interest Site","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL201"]}, +{"name":"FCODE=AL208","geometries":["node","area"],"description":"Shanty Town","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL208"]}, +{"name":"FCODE=AL210","geometries":["node","linestring"],"description":"Protection Shed","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL210"]}, +{"name":"FCODE=AL211","geometries":["linestring","node","area"],"description":"Transportation Route Protection Structure","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL211"]}, +{"name":"FCODE=AL241","geometries":["area","node"],"description":"Tower","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL241"]}, +{"name":"FCODE=AL250","geometries":["node"],"description":"Underground Dwelling","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL250"]}, +{"name":"FCODE=AL260","geometries":["linestring"],"description":"Wall","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL260"]}, +{"name":"FCODE=AL270","geometries":["node","area"],"description":"Industrial Farm","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL270"]}, +{"name":"FCODE=AL351","geometries":["node","area"],"description":"Space Facility","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL351"]}, +{"name":"FCODE=AL371","geometries":["area","node"],"description":"Manor House","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL371"]}, +{"name":"FCODE=AL375","geometries":["node","area"],"description":"Castle","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL375"]}, +{"name":"FCODE=AL376","geometries":["node","area"],"description":"Castle Complex","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL376"]}, +{"name":"FCODE=AL510","geometries":["node"],"description":"Tethered Balloon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AL510"]}, +{"name":"FCODE=AM010","geometries":["area","node"],"description":"Storage Depot","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AM010"]}, +{"name":"FCODE=AM011","geometries":["area","node"],"description":"Shipping Container","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AM011"]}, +{"name":"FCODE=AM020","geometries":["node","area"],"description":"Grain Storage Structure","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AM020"]}, +{"name":"FCODE=AM030","geometries":["area","node"],"description":"Grain Elevator","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AM030"]}, +{"name":"FCODE=AM040","geometries":["node","area"],"description":"Mineral Pile","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AM040"]}, +{"name":"FCODE=AM060","geometries":["node","area"],"description":"Surface Bunker","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AM060"]}, +{"name":"FCODE=AM065","geometries":["node","area"],"description":"Munition Storage Facility","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AM065"]}, +{"name":"FCODE=AM070","geometries":["node","area"],"description":"Storage Tank","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AM070"]}, +{"name":"FCODE=AM071","geometries":["node","area"],"description":"Tank Farm","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AM071"]}, +{"name":"FCODE=AM075","geometries":["node","area"],"description":"Fuel Storage Facility","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AM075"]}, +{"name":"FCODE=AM080","geometries":["area","node"],"description":"Water Tower","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AM080"]}, +{"name":"FCODE=AN010","geometries":["linestring"],"description":"Railway","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AN010"]}, +{"name":"FCODE=AN050","geometries":["linestring"],"description":"Railway Sidetrack","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AN050"]}, +{"name":"FCODE=AN060","geometries":["area","node"],"description":"Railway Yard","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AN060"]}, +{"name":"FCODE=AN075","geometries":["node","area"],"description":"Railway Turntable","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AN075"]}, +{"name":"FCODE=AN076","geometries":["node","area"],"description":"Roundhouse","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AN076"]}, +{"name":"FCODE=AN085","geometries":["node"],"description":"Railway Signal","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AN085"]}, +{"name":"FCODE=AP010","geometries":["linestring"],"description":"Cart Track","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AP010"]}, +{"name":"FCODE=AP020","geometries":["node"],"description":"Road Interchange","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AP020"]}, +{"name":"FCODE=AP030","aliases":["F_CODE=AP030"],"geometries":["linestring","area"],"description":"Road","isA":"FCODE","objectType":"tag"}, +{"name":"FCODE=AP033","geometries":["node"],"description":"Engineered Turnaround Site","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AP033"]}, +{"name":"FCODE=AP040","geometries":["node","linestring"],"description":"Gate","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AP040"]}, +{"name":"FCODE=AP041","geometries":["node","linestring"],"description":"Vehicle Barrier","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AP041"]}, +{"name":"FCODE=AP050","geometries":["linestring"],"description":"Trail","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AP050"]}, +{"name":"FCODE=AP055","geometries":["area","linestring"],"description":"Tank Trail","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AP055"]}, +{"name":"FCODE=AP056","geometries":["node","area"],"description":"Tank Crossing","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AP056"]}, +{"name":"FCODE=AQ035","geometries":["linestring"],"description":"Sidewalk","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ035"]}, +{"name":"FCODE=AQ040","geometries":["node","linestring","area"],"description":"Bridge","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ040"]}, +{"name":"FCODE=AQ045","geometries":["node","linestring","area"],"description":"Bridge Span","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ045"]}, +{"name":"FCODE=AQ050","geometries":["linestring","area"],"description":"Bridge Superstructure","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ050"]}, +{"name":"FCODE=AQ055","geometries":["node"],"description":"Bridge Tower","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ055"]}, +{"name":"FCODE=AQ056","geometries":["area","node","linestring"],"description":"Bridge Pier","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ056"]}, +{"name":"FCODE=AQ059","geometries":["linestring","node"],"description":"Transportation Route Characteristic Change","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ059"]}, +{"name":"FCODE=AQ060","geometries":["area","node"],"description":"Control Tower","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ060"]}, +{"name":"FCODE=AQ062","geometries":["node"],"description":"Crossing","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ062"]}, +{"name":"FCODE=AQ063","geometries":["area","linestring"],"description":"Causeway Structure","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ063"]}, +{"name":"FCODE=AQ065","geometries":["node","linestring"],"description":"Culvert","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ065"]}, +{"name":"FCODE=AQ068","geometries":["area","node"],"description":"Transportation Block","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ068"]}, +{"name":"FCODE=AQ070","geometries":["node","linestring"],"description":"Ferry Crossing","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ070"]}, +{"name":"FCODE=AQ075","geometries":["linestring"],"description":"Ice Route","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ075"]}, +{"name":"FCODE=AQ080","geometries":["area","node"],"description":"Ferry Station","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ080"]}, +{"name":"FCODE=AQ090","geometries":["node"],"description":"Entrance and/or Exit","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ090"]}, +{"name":"FCODE=AQ095","geometries":["node"],"description":"Tunnel Mouth","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ095"]}, +{"name":"FCODE=AQ110","geometries":["node"],"description":"Mooring Mast","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ110"]}, +{"name":"FCODE=AQ111","geometries":["linestring","node"],"description":"Prepared Watercourse Crossing","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ111"]}, +{"name":"FCODE=AQ113","geometries":["linestring"],"description":"Pipeline","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ113"]}, +{"name":"FCODE=AQ114","geometries":["node"],"description":"Storm Drain","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ114"]}, +{"name":"FCODE=AQ115","geometries":["node"],"description":"Utility Access Point","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ115"]}, +{"name":"FCODE=AQ116","geometries":["node","area"],"description":"Pumping Station","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ116"]}, +{"name":"FCODE=AQ118","geometries":["node"],"description":"Sharp Curve","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ118"]}, +{"name":"FCODE=AQ120","geometries":["linestring"],"description":"Steep Grade","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ120"]}, +{"name":"FCODE=AQ125","geometries":["node","area"],"description":"Transportation Station","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ125"]}, +{"name":"FCODE=AQ130","geometries":["linestring","area"],"description":"Tunnel","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ130"]}, +{"name":"FCODE=AQ135","geometries":["node","area"],"description":"Roadside Rest Area","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ135"]}, +{"name":"FCODE=AQ140","geometries":["area"],"description":"Vehicle Lot","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ140"]}, +{"name":"FCODE=AQ141","geometries":["node","area"],"description":"Parking Garage","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ141"]}, +{"name":"FCODE=AQ150","geometries":["linestring","area"],"description":"Stair","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ150"]}, +{"name":"FCODE=AQ151","geometries":["area","linestring"],"description":"Arcade","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ151"]}, +{"name":"FCODE=AQ160","geometries":["node"],"description":"Traffic Light","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ160"]}, +{"name":"FCODE=AQ161","geometries":["node"],"description":"Street Lamp","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ161"]}, +{"name":"FCODE=AQ162","geometries":["node"],"description":"Street Sign","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ162"]}, +{"name":"FCODE=AQ170","geometries":["node","area"],"description":"Motor Vehicle Station","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ170"]}, +{"name":"FCODE=AQ180","geometries":["node","area"],"description":"Weigh Station","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AQ180"]}, +{"name":"FCODE=AT005","geometries":["linestring"],"description":"Cable","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AT005"]}, +{"name":"FCODE=AT010","geometries":["node"],"description":"Dish Aerial","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AT010"]}, +{"name":"FCODE=AT011","geometries":["node"],"description":"Aerial","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AT011"]}, +{"name":"FCODE=AT012","geometries":["node","area"],"description":"Aerial Farm","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AT012"]}, +{"name":"FCODE=AT030","geometries":["linestring"],"description":"Power Line","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AT030"]}, +{"name":"FCODE=AT041","geometries":["linestring"],"description":"Cableway","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AT041"]}, +{"name":"FCODE=AT042","geometries":["node"],"description":"Pylon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AT042"]}, +{"name":"FCODE=AT045","geometries":["area","node"],"description":"Radar Station","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AT045"]}, +{"name":"FCODE=AT050","geometries":["area"],"description":"Communication Station","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AT050"]}, +{"name":"FCODE=AT060","geometries":["linestring"],"description":"Communication Line","isA":"FCODE","objectType":"tag","aliases":["F_CODE=AT060"]}, +{"name":"FCODE=BA010","geometries":["linestring"],"description":"Land Water Boundary","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BA010"]}, +{"name":"FCODE=BA023","geometries":["area"],"description":"Foreshore","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BA023"]}, +{"name":"FCODE=BA024","geometries":["linestring"],"description":"Shoreline","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BA024"]}, +{"name":"FCODE=BA030","geometries":["area","node"],"description":"Island","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BA030"]}, +{"name":"FCODE=BA040","geometries":["area"],"description":"Tidal Water","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BA040"]}, +{"name":"FCODE=BA050","geometries":["node","area"],"description":"Beach","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BA050"]}, +{"name":"FCODE=BB005","geometries":["area"],"description":"Harbour","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB005"]}, +{"name":"FCODE=BB008","geometries":["area"],"description":"Harbour Waters","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB008"]}, +{"name":"FCODE=BB009","geometries":["area","node"],"description":"Port","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB009"]}, +{"name":"FCODE=BB010","geometries":["area","node"],"description":"Anchorage","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB010"]}, +{"name":"FCODE=BB019","geometries":["node"],"description":"Anchor","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB019"]}, +{"name":"FCODE=BB020","geometries":["node"],"description":"Berth","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB020"]}, +{"name":"FCODE=BB041","geometries":["linestring","area"],"description":"Breakwater","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB041"]}, +{"name":"FCODE=BB043","geometries":["linestring","area"],"description":"Groin","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB043"]}, +{"name":"FCODE=BB050","geometries":["node"],"description":"Calling In Point","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB050"]}, +{"name":"FCODE=BB080","geometries":["node"],"description":"Dolphin","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB080"]}, +{"name":"FCODE=BB081","geometries":["linestring","area"],"description":"Shoreline Construction","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB081"]}, +{"name":"FCODE=BB082","geometries":["linestring","area"],"description":"Shoreline Ramp","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB082"]}, +{"name":"FCODE=BB090","geometries":["area"],"description":"Dry Dock","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB090"]}, +{"name":"FCODE=BB100","geometries":["linestring"],"description":"Fishing Stakes","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB100"]}, +{"name":"FCODE=BB110","geometries":["area","node"],"description":"Fish Weir","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB110"]}, +{"name":"FCODE=BB115","geometries":["area"],"description":"Nautical Gridiron","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB115"]}, +{"name":"FCODE=BB140","geometries":["linestring","area"],"description":"Training Wall","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB140"]}, +{"name":"FCODE=BB150","geometries":["node","area"],"description":"Beach Landing Site","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB150"]}, +{"name":"FCODE=BB155","geometries":["node"],"description":"Maritime Signal Station","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB155"]}, +{"name":"FCODE=BB190","geometries":["linestring","area"],"description":"Berthing Structure","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB190"]}, +{"name":"FCODE=BB199","geometries":["area"],"description":"Floating Dry Dock","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB199"]}, +{"name":"FCODE=BB201","geometries":["node","area"],"description":"Small Craft Facility","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB201"]}, +{"name":"FCODE=BB230","geometries":["linestring"],"description":"Seawall","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB230"]}, +{"name":"FCODE=BB240","geometries":["area"],"description":"Slipway","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB240"]}, +{"name":"FCODE=BB241","geometries":["node","area"],"description":"Shipyard","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BB241"]}, +{"name":"FCODE=BC010","geometries":["node"],"description":"Maritime Navigation Beacon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BC010"]}, +{"name":"FCODE=BC020","geometries":["node"],"description":"Buoy","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BC020"]}, +{"name":"FCODE=BC034","geometries":["node"],"description":"Maritime Radiobeacon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BC034"]}, +{"name":"FCODE=BC040","geometries":["node"],"description":"Maritime Navigation Light","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BC040"]}, +{"name":"FCODE=BC041","geometries":["node"],"description":"Maritime Nav Light Support","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BC041"]}, +{"name":"FCODE=BC050","geometries":["node","area"],"description":"Lighthouse","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BC050"]}, +{"name":"FCODE=BC055","geometries":["node"],"description":"Maritime Navigation Marker","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BC055"]}, +{"name":"FCODE=BC060","geometries":["node"],"description":"Light Sector","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BC060"]}, +{"name":"FCODE=BC070","geometries":["node"],"description":"Light Vessel","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BC070"]}, +{"name":"FCODE=BC080","geometries":["node"],"description":"Insubstantial Nav Mark","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BC080"]}, +{"name":"FCODE=BD020","geometries":["node","area"],"description":"Crib","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BD020"]}, +{"name":"FCODE=BD030","geometries":["node","area"],"description":"Discoloured Water","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BD030"]}, +{"name":"FCODE=BD050","geometries":["node","area"],"description":"Foul Ground","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BD050"]}, +{"name":"FCODE=BD061","geometries":["area","node"],"description":"Aquatic Vegetation","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BD061"]}, +{"name":"FCODE=BD100","geometries":["node","area"],"description":"Structural Pile","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BD100"]}, +{"name":"FCODE=BD110","geometries":["node"],"description":"Offshore Platform","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BD110"]}, +{"name":"FCODE=BD115","geometries":["node","area"],"description":"Offshore Construction","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BD115"]}, +{"name":"FCODE=BD120","geometries":["area","linestring"],"description":"Reef","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BD120"]}, +{"name":"FCODE=BD130","geometries":["node"],"description":"Hazardous Rock","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BD130"]}, +{"name":"FCODE=BD140","geometries":["node","area"],"description":"Snag","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BD140"]}, +{"name":"FCODE=BD180","geometries":["node","area"],"description":"Wreck","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BD180"]}, +{"name":"FCODE=BD181","geometries":["node"],"description":"Hulk","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BD181"]}, +{"name":"FCODE=BE010","geometries":["linestring"],"description":"Depth Curve","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BE010"]}, +{"name":"FCODE=BE015","geometries":["linestring"],"description":"Depth Contour","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BE015"]}, +{"name":"FCODE=BE019","geometries":["area"],"description":"Depth Area","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BE019"]}, +{"name":"FCODE=BE020","geometries":["node"],"description":"Sounding","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BE020"]}, +{"name":"FCODE=BE050","geometries":["linestring"],"description":"Beach Profile","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BE050"]}, +{"name":"FCODE=BF010","geometries":["node","area"],"description":"Bottom Character Region","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BF010"]}, +{"name":"FCODE=BG012","geometries":["area","linestring","node"],"description":"Water Turbulence","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BG012"]}, +{"name":"FCODE=BG030","geometries":["node"],"description":"Tidal Stream Observe Station","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BG030"]}, +{"name":"FCODE=BH010","geometries":["linestring","area","node"],"description":"Aqueduct","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH010"]}, +{"name":"FCODE=BH012","geometries":["node"],"description":"Qanat Shaft","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH012"]}, +{"name":"FCODE=BH015","geometries":["area"],"description":"Bog","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH015"]}, +{"name":"FCODE=BH020","geometries":["linestring","area"],"description":"Canal","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH020"]}, +{"name":"FCODE=BH030","geometries":["linestring","area"],"description":"Ditch","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH030"]}, +{"name":"FCODE=BH040","geometries":["area"],"description":"Water Treatment Bed","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH040"]}, +{"name":"FCODE=BH050","geometries":["area"],"description":"Mariculture Site","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH050"]}, +{"name":"FCODE=BH051","geometries":["area","node"],"description":"Fish Farm Facility","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH051"]}, +{"name":"FCODE=BH060","geometries":["linestring"],"description":"Flume","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH060"]}, +{"name":"FCODE=BH065","geometries":["linestring"],"description":"Water Race","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH065"]}, +{"name":"FCODE=BH070","aliases":["F_CODE=BH070"],"geometries":["node","area","linestring"],"description":"Ford","isA":"FCODE","objectType":"tag"}, +{"name":"FCODE=BH075","geometries":["area","node"],"description":"Fountain","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH075"]}, +{"name":"FCODE=BH077","geometries":["area"],"description":"Hummock","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH077"]}, +{"name":"FCODE=BH080","geometries":["area"],"description":"Lake","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH080"]}, +{"name":"FCODE=BH082","geometries":["node","area"],"description":"Inland Waterbody","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH082"]}, +{"name":"FCODE=BH090","geometries":["area"],"description":"Land Subject to Inundation","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH090"]}, +{"name":"FCODE=BH100","geometries":["linestring","area"],"description":"Moat","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH100"]}, +{"name":"FCODE=BH110","geometries":["linestring"],"description":"Penstock","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH110"]}, +{"name":"FCODE=BH116","geometries":["area"],"description":"Aquifer","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH116"]}, +{"name":"FCODE=BH120","geometries":["node","linestring","area"],"description":"Rapids","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH120"]}, +{"name":"FCODE=BH130","geometries":["area"],"description":"Reservoir","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH130"]}, +{"name":"FCODE=BH135","geometries":["area"],"description":"Rice Field","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH135"]}, +{"name":"FCODE=BH140","aliases":["F_CODE=BH140"],"geometries":["linestring","area"],"description":"River","isA":"FCODE","objectType":"tag"}, +{"name":"FCODE=BH145","geometries":["node"],"description":"Vanishing Point","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH145"]}, +{"name":"FCODE=BH150","geometries":["area"],"description":"Salt Flat","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH150"]}, +{"name":"FCODE=BH155","geometries":["area","node"],"description":"Salt Evaporator","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH155"]}, +{"name":"FCODE=BH160","geometries":["area"],"description":"Sabkha","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH160"]}, +{"name":"FCODE=BH165","geometries":["linestring","area"],"description":"Spillway","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH165"]}, +{"name":"FCODE=BH170","geometries":["area","node"],"description":"Natural Pool","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH170"]}, +{"name":"FCODE=BH180","geometries":["node","linestring"],"description":"Waterfall","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH180"]}, +{"name":"FCODE=BH190","geometries":["area"],"description":"Lagoon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH190"]}, +{"name":"FCODE=BH220","geometries":["node","area"],"description":"Waterwork","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH220"]}, +{"name":"FCODE=BH230","geometries":["node","area"],"description":"Water Well","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BH230"]}, +{"name":"FCODE=BI005","geometries":["area"],"description":"Vessel Lift","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BI005"]}, +{"name":"FCODE=BI006","geometries":["node","linestring"],"description":"Ship Elevator","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BI006"]}, +{"name":"FCODE=BI010","geometries":["node"],"description":"Cistern","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BI010"]}, +{"name":"FCODE=BI020","geometries":["linestring","area","node"],"description":"Dam","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BI020"]}, +{"name":"FCODE=BI030","geometries":["linestring","node","area"],"description":"Lock","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BI030"]}, +{"name":"FCODE=BI040","geometries":["node","linestring"],"description":"Sluice Gate","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BI040"]}, +{"name":"FCODE=BI041","geometries":["linestring","node"],"description":"Water Gate","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BI041"]}, +{"name":"FCODE=BI044","geometries":["node","linestring","area"],"description":"Flood Control Structure","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BI044"]}, +{"name":"FCODE=BI045","geometries":["node","linestring"],"description":"Basin Gate","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BI045"]}, +{"name":"FCODE=BI050","geometries":["area","node"],"description":"Water Intake Tower","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BI050"]}, +{"name":"FCODE=BI060","geometries":["linestring"],"description":"Fish Ladder","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BI060"]}, +{"name":"FCODE=BI070","geometries":["node"],"description":"Gauging Station","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BI070"]}, +{"name":"FCODE=BJ020","geometries":["area"],"description":"Moraine","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BJ020"]}, +{"name":"FCODE=BJ030","geometries":["area"],"description":"Glacier","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BJ030"]}, +{"name":"FCODE=BJ031","geometries":["area","linestring"],"description":"Crevasse","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BJ031"]}, +{"name":"FCODE=BJ040","geometries":["linestring"],"description":"Ice Cliff","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BJ040"]}, +{"name":"FCODE=BJ060","geometries":["node"],"description":"Ice Peak","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BJ060"]}, +{"name":"FCODE=BJ065","geometries":["area"],"description":"Ice Shelf","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BJ065"]}, +{"name":"FCODE=BJ070","geometries":["linestring","area"],"description":"Pack Ice","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BJ070"]}, +{"name":"FCODE=BJ080","geometries":["area"],"description":"Polar Ice","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BJ080"]}, +{"name":"FCODE=BJ099","geometries":["area"],"description":"Ice Cap","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BJ099"]}, +{"name":"FCODE=BJ100","geometries":["area"],"description":"Snow Field and/or Ice-field","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BJ100"]}, +{"name":"FCODE=BJ110","geometries":["area"],"description":"Tundra","isA":"FCODE","objectType":"tag","aliases":["F_CODE=BJ110"]}, +{"name":"FCODE=CA010","geometries":["linestring"],"description":"Elevation Contour","isA":"FCODE","objectType":"tag","aliases":["F_CODE=CA010"]}, +{"name":"FCODE=CA030","geometries":["node"],"description":"Spot Elevation","isA":"FCODE","objectType":"tag","aliases":["F_CODE=CA030"]}, +{"name":"FCODE=DA005","geometries":["area"],"description":"Asphalt Lake","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DA005"]}, +{"name":"FCODE=DA010","geometries":["area"],"description":"Soil Surface Region","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DA010"]}, +{"name":"FCODE=DB010","geometries":["linestring"],"description":"Steep Terrain Face","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB010"]}, +{"name":"FCODE=DB028","geometries":["area"],"description":"Cave Chamber","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB028"]}, +{"name":"FCODE=DB029","geometries":["node"],"description":"Cave Mouth","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB029"]}, +{"name":"FCODE=DB061","geometries":["linestring","area"],"description":"Crevice","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB061"]}, +{"name":"FCODE=DB070","geometries":["linestring"],"description":"Cut","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB070"]}, +{"name":"FCODE=DB071","geometries":["linestring"],"description":"Cut Line","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB071"]}, +{"name":"FCODE=DB080","geometries":["node","area"],"description":"Depression","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB080"]}, +{"name":"FCODE=DB090","geometries":["area","linestring"],"description":"Embankment","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB090"]}, +{"name":"FCODE=DB100","geometries":["linestring"],"description":"Esker","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB100"]}, +{"name":"FCODE=DB110","geometries":["linestring"],"description":"Geologic Fault","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB110"]}, +{"name":"FCODE=DB115","geometries":["area","node"],"description":"Geothermal Outlet","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB115"]}, +{"name":"FCODE=DB150","geometries":["node"],"description":"Mountain Pass","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB150"]}, +{"name":"FCODE=DB160","geometries":["area","linestring","node"],"description":"Rock Formation","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB160"]}, +{"name":"FCODE=DB170","geometries":["area"],"description":"Sand Dunes","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB170"]}, +{"name":"FCODE=DB180","geometries":["node","area"],"description":"Volcano","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB180"]}, +{"name":"FCODE=DB185","geometries":["node","area"],"description":"Crater","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB185"]}, +{"name":"FCODE=DB190","geometries":["linestring"],"description":"Volcanic Dyke","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB190"]}, +{"name":"FCODE=DB200","geometries":["area","linestring"],"description":"Gully","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB200"]}, +{"name":"FCODE=DB211","geometries":["area"],"description":"Landslide Mass","isA":"FCODE","objectType":"tag","aliases":["F_CODE=DB211"]}, +{"name":"FCODE=EA010","geometries":["area"],"description":"Crop Land","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EA010"]}, +{"name":"FCODE=EA020","geometries":["linestring"],"description":"Hedgerow","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EA020"]}, +{"name":"FCODE=EA030","geometries":["area"],"description":"Plant Nursery","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EA030"]}, +{"name":"FCODE=EA031","geometries":["area"],"description":"Botanic Garden","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EA031"]}, +{"name":"FCODE=EA040","geometries":["node","area"],"description":"Orchard","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EA040"]}, +{"name":"FCODE=EA050","geometries":["area","node"],"description":"Vineyard","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EA050"]}, +{"name":"FCODE=EA055","geometries":["area"],"description":"Hop Field","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EA055"]}, +{"name":"FCODE=EB010","geometries":["area"],"description":"Grassland","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EB010"]}, +{"name":"FCODE=EB020","geometries":["area"],"description":"Thicket","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EB020"]}, +{"name":"FCODE=EB070","geometries":["area"],"description":"Brush","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EB070"]}, +{"name":"FCODE=EC005","geometries":["node"],"description":"Tree","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EC005"]}, +{"name":"FCODE=EC010","geometries":["area"],"description":"Cane","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EC010"]}, +{"name":"FCODE=EC015","geometries":["area","linestring"],"description":"Forest","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EC015"]}, +{"name":"FCODE=EC020","geometries":["node","area"],"description":"Oasis","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EC020"]}, +{"name":"FCODE=EC030","geometries":["node","linestring","area"],"description":"Wood","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EC030"]}, +{"name":"FCODE=EC040","geometries":["linestring","area"],"description":"Cleared Way","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EC040"]}, +{"name":"FCODE=EC050","geometries":["area","node"],"description":"Grove","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EC050"]}, +{"name":"FCODE=EC060","geometries":["area"],"description":"Forest Clearing","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EC060"]}, +{"name":"FCODE=ED010","geometries":["area"],"description":"Marsh","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ED010"]}, +{"name":"FCODE=ED020","geometries":["area"],"description":"Swamp","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ED020"]}, +{"name":"FCODE=ED030","geometries":["area"],"description":"Mangrove Swamp","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ED030"]}, +{"name":"FCODE=EE010","geometries":["area"],"description":"Logging Site","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EE010"]}, +{"name":"FCODE=EE030","geometries":["area"],"description":"Desert","isA":"FCODE","objectType":"tag","aliases":["F_CODE=EE030"]}, +{"name":"FCODE=FA000","geometries":["linestring"],"description":"Administrative Boundary","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FA000"]}, +{"name":"FCODE=FA002","geometries":["area"],"description":"Geopolitical Entity","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FA002"]}, +{"name":"FCODE=FA003","geometries":["area"],"description":"Administrative Subdivision","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FA003"]}, +{"name":"FCODE=FA012","geometries":["node","area"],"description":"Contaminated Region","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FA012"]}, +{"name":"FCODE=FA015","geometries":["node","area"],"description":"Firing Range","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FA015"]}, +{"name":"FCODE=FA090","geometries":["linestring"],"description":"Geophysical Prospecting Grid","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FA090"]}, +{"name":"FCODE=FA100","geometries":["area"],"description":"Test Site","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FA100"]}, +{"name":"FCODE=FA110","geometries":["linestring"],"description":"International Date Line","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FA110"]}, +{"name":"FCODE=FA165","geometries":["area","node"],"description":"Training Site","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FA165"]}, +{"name":"FCODE=FA210","geometries":["area"],"description":"Conservation Area","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FA210"]}, +{"name":"FCODE=FC021","geometries":["linestring"],"description":"Maritime Limit","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FC021"]}, +{"name":"FCODE=FC034","geometries":["area"],"description":"Dredged Area","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FC034"]}, +{"name":"FCODE=FC035","geometries":["area"],"description":"Waterbody Divider","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FC035"]}, +{"name":"FCODE=FC037","geometries":["area"],"description":"Maritime Caution Area","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FC037"]}, +{"name":"FCODE=FC041","geometries":["area","node","linestring"],"description":"Traffic Separation Scheme","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FC041"]}, +{"name":"FCODE=FC100","geometries":["linestring"],"description":"Measured Distance Line","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FC100"]}, +{"name":"FCODE=FC130","geometries":["linestring"],"description":"Maritime Radar Ref Line","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FC130"]}, +{"name":"FCODE=FC165","geometries":["area","linestring"],"description":"Maritime Route","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FC165"]}, +{"name":"FCODE=FC177","geometries":["area"],"description":"Swept Area","isA":"FCODE","objectType":"tag","aliases":["F_CODE=FC177"]}, +{"name":"FCODE=GA033","geometries":["node"],"description":"Aero Radio Nav Installation","isA":"FCODE","objectType":"tag","aliases":["F_CODE=GA033"]}, +{"name":"FCODE=GA034","geometries":["node"],"description":"Aeronautical Radio Navigation Service","isA":"FCODE","objectType":"tag","aliases":["F_CODE=GA034"]}, +{"name":"FCODE=GB005","geometries":["node","area"],"description":"Land Aerodrome","isA":"FCODE","objectType":"tag","aliases":["F_CODE=GB005"]}, +{"name":"FCODE=GB013","geometries":["node"],"description":"Aerodrome Beacon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=GB013"]}, +{"name":"FCODE=GB015","geometries":["area"],"description":"Apron","isA":"FCODE","objectType":"tag","aliases":["F_CODE=GB015"]}, +{"name":"FCODE=GB030","geometries":["area","node"],"description":"Helipad","isA":"FCODE","objectType":"tag","aliases":["F_CODE=GB030"]}, +{"name":"FCODE=GB035","geometries":["area","node"],"description":"Heliport","isA":"FCODE","objectType":"tag","aliases":["F_CODE=GB035"]}, +{"name":"FCODE=GB040","geometries":["area","node"],"description":"Launch Pad","isA":"FCODE","objectType":"tag","aliases":["F_CODE=GB040"]}, +{"name":"FCODE=GB045","geometries":["area"],"description":"Stopway","isA":"FCODE","objectType":"tag","aliases":["F_CODE=GB045"]}, +{"name":"FCODE=GB050","geometries":["linestring","node"],"description":"Aircraft Revetment","isA":"FCODE","objectType":"tag","aliases":["F_CODE=GB050"]}, +{"name":"FCODE=GB055","aliases":["F_CODE=GB055"],"geometries":["area"],"description":"Runway","isA":"FCODE","objectType":"tag"}, +{"name":"FCODE=GB065","geometries":["node","area"],"description":"Water Aerodrome","isA":"FCODE","objectType":"tag","aliases":["F_CODE=GB065"]}, +{"name":"FCODE=GB070","geometries":["area"],"description":"Seaplane Run","isA":"FCODE","objectType":"tag","aliases":["F_CODE=GB070"]}, +{"name":"FCODE=GB075","geometries":["linestring","area"],"description":"Taxiway","isA":"FCODE","objectType":"tag","aliases":["F_CODE=GB075"]}, +{"name":"FCODE=GB220","geometries":["node"],"description":"Aeronautical Obstacle","isA":"FCODE","objectType":"tag","aliases":["F_CODE=GB220"]}, +{"name":"FCODE=GB230","geometries":["node","area"],"description":"Aircraft Hangar","isA":"FCODE","objectType":"tag","aliases":["F_CODE=GB230"]}, +{"name":"FCODE=GB250","geometries":["area","node"],"description":"Hardened Aircraft Shelter","isA":"FCODE","objectType":"tag","aliases":["F_CODE=GB250"]}, +{"name":"FCODE=GB485","geometries":["node"],"description":"Approach Lighting System","isA":"FCODE","objectType":"tag","aliases":["F_CODE=GB485"]}, +{"name":"FCODE=IA040","geometries":["area"],"description":"Land Parcel","isA":"FCODE","objectType":"tag","aliases":["F_CODE=IA040"]}, +{"name":"FCODE=NA170","geometries":["area"],"description":"Drainage Basin","isA":"FCODE","objectType":"tag","aliases":["F_CODE=NA170"]}, +{"name":"FCODE=NM010","geometries":["area"],"description":"Aqueduct Aon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=NM010"]}, +{"name":"FCODE=NM020","geometries":["area"],"description":"Navigable Canal Aon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=NM020"]}, +{"name":"FCODE=NM030","geometries":["area"],"description":"Ditch Aon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=NM030"]}, +{"name":"FCODE=NM082","geometries":["area"],"description":"Inland Waterbody Aon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=NM082"]}, +{"name":"FCODE=NM140","geometries":["area"],"description":"River Aon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=NM140"]}, +{"name":"FCODE=NM160","geometries":["area"],"description":"Sabkha Aon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=NM160"]}, +{"name":"FCODE=NM170","geometries":["area"],"description":"Natural Pool Aon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=NM170"]}, +{"name":"FCODE=NM230","geometries":["area"],"description":"Water Well Aon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=NM230"]}, +{"name":"FCODE=NU010","geometries":["area"],"description":"Cistern Aon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=NU010"]}, +{"name":"FCODE=NU070","geometries":["area"],"description":"Storage Tank Aon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=NU070"]}, +{"name":"FCODE=NU113","geometries":["area"],"description":"Pipeline Aon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=NU113"]}, +{"name":"FCODE=NU116","geometries":["area"],"description":"Pumping Station Aon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=NU116"]}, +{"name":"FCODE=NU170","geometries":["area"],"description":"Swimming Pool Aon","isA":"FCODE","objectType":"tag","aliases":["F_CODE=NU170"]}, +{"name":"FCODE=SA050","geometries":["area"],"description":"Slope Region","isA":"FCODE","objectType":"tag","aliases":["F_CODE=SA050"]}, +{"name":"FCODE=STB23","geometries":["node","area"],"description":"Landing Zone","isA":"FCODE","objectType":"tag","aliases":["F_CODE=STB23"]}, +{"name":"FCODE=STBM1","geometries":["linestring"],"description":"Military Boundary","isA":"FCODE","objectType":"tag","aliases":["F_CODE=STBM1"]}, +{"name":"FCODE=STDPP","geometries":["node"],"description":"Standpipe","isA":"FCODE","objectType":"tag","aliases":["F_CODE=STDPP"]}, +{"name":"FCODE=SU001","geometries":["area","node"],"description":"Military Installation","isA":"FCODE","objectType":"tag","aliases":["F_CODE=SU001"]}, +{"name":"FCODE=SU004","geometries":["area"],"description":"Cantonment Area","isA":"FCODE","objectType":"tag","aliases":["F_CODE=SU004"]}, +{"name":"FCODE=SU030","geometries":["linestring"],"description":"Installation Boundary","isA":"FCODE","objectType":"tag","aliases":["F_CODE=SU030"]}, +{"name":"FCODE=T0181","geometries":["node"],"description":"Pump","isA":"FCODE","objectType":"tag","aliases":["F_CODE=T0181"]}, +{"name":"FCODE=ZB020","geometries":["node"],"description":"Benchmark","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ZB020"]}, +{"name":"FCODE=ZB030","geometries":["node"],"description":"Boundary Monument","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ZB030"]}, +{"name":"FCODE=ZB035","geometries":["node"],"description":"Control Point","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ZB035"]}, +{"name":"FCODE=ZB036","geometries":["node"],"description":"Distance Mark","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ZB036"]}, +{"name":"FCODE=ZB050","geometries":["node"],"description":"Survey Point","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ZB050"]}, +{"name":"FCODE=ZB060","geometries":["node"],"description":"Geodetic Point","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ZB060"]}, +{"name":"FCODE=ZC040","geometries":["area"],"description":"Local Magnetic Anomaly","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ZC040"]}, +{"name":"FCODE=ZD020","geometries":["area"],"description":"Void Collection Area","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ZD020"]}, +{"name":"FCODE=ZD030","geometries":["area","node"],"description":"Cultural Context Location","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ZD030"]}, +{"name":"FCODE=ZD040","geometries":["area","node","linestring"],"description":"Named Location","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ZD040"]}, +{"name":"FCODE=ZD045","geometries":["area","node","linestring"],"description":"Annotated Location","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ZD045"]}, +{"name":"FCODE=ZD070","geometries":["area","node"],"description":"Water Measurement Location","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ZD070"]}, +{"name":"FCODE=ZI031","geometries":["area"],"description":"Dataset","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ZI031"]}, +{"name":"FCODE=ZI039","geometries":["area"],"description":"Entity Collection Metadata","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ZI039"]}, +{"name":"FCODE=ZI040","geometries":["area"],"description":"Spatial Metadata Entity Collection","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ZI040"]}, +{"name":"FCODE=ZI041","geometries":["area"],"description":"Non-spatial Metadata Entity Collection","isA":"FCODE","objectType":"tag","aliases":["F_CODE=ZI041"]}] \ No newline at end of file diff --git a/conf/schema/REF1.json b/conf/schema/REF1.json index 5e944ba37b..fae77d9ee4 100644 --- a/conf/schema/REF1.json +++ b/conf/schema/REF1.json @@ -1,13 +1,8 @@ [ { "dataType": "text", - "geometries": [ - "node", - "way", - "relation" - ], "influence": 1, "name": "REF1", "objectType": "tag" } -] \ No newline at end of file +] diff --git a/conf/schema/REF2.json b/conf/schema/REF2.json index d9c5a42f9d..f4bf9c3e0d 100644 --- a/conf/schema/REF2.json +++ b/conf/schema/REF2.json @@ -1,13 +1,8 @@ [ { "dataType": "text", - "geometries": [ - "node", - "way", - "relation" - ], "influence": 1, "name": "REF2", "objectType": "tag" } -] \ No newline at end of file +] diff --git a/conf/schema/address.json b/conf/schema/address.json index dda95df03d..6051c64646 100644 --- a/conf/schema/address.json +++ b/conf/schema/address.json @@ -1,12 +1,6 @@ [ { "dataType": "text", - "geometries": [ - "node", - "area", - "way", - "relation" - ], "influence": 2, "mismatchScore": 0.25, "name": "abstract_address", diff --git a/conf/schema/colour.json b/conf/schema/colour.json index da1b8c44c9..65bd241382 100644 --- a/conf/schema/colour.json +++ b/conf/schema/colour.json @@ -1,11 +1,6 @@ [ { "dataType": "text", - "geometries": [ - "node", - "way", - "relation" - ], "name": "colour", "objectType": "tag" } diff --git a/conf/schema/contact.json b/conf/schema/contact.json index 4ab6265b16..2499b76c68 100644 --- a/conf/schema/contact.json +++ b/conf/schema/contact.json @@ -1,11 +1,6 @@ [ { "dataType": "text", - "geometries": [ - "node", - "way", - "relation" - ], "name": "contact:phone", "objectType": "tag" } diff --git a/conf/schema/destination.json b/conf/schema/destination.json index 844fa0ccfb..9e6c40b212 100644 --- a/conf/schema/destination.json +++ b/conf/schema/destination.json @@ -1,11 +1,6 @@ [ { "dataType": "text", - "geometries": [ - "node", - "way", - "relation" - ], "name": "destination", "objectType": "tag" } diff --git a/conf/schema/ele.json b/conf/schema/ele.json index 22df408211..6995c6a57c 100644 --- a/conf/schema/ele.json +++ b/conf/schema/ele.json @@ -1,11 +1,6 @@ [ { "dataType": "real", - "geometries": [ - "node", - "way", - "relation" - ], "name": "ele", "objectType": "tag" } diff --git a/conf/schema/email.json b/conf/schema/email.json index 98fe5153ed..ce3b1891fa 100644 --- a/conf/schema/email.json +++ b/conf/schema/email.json @@ -1,11 +1,6 @@ [ { "dataType": "text", - "geometries": [ - "node", - "way", - "relation" - ], "name": "email", "objectType": "tag" } diff --git a/conf/schema/fire_hydrant.json b/conf/schema/fire_hydrant.json index 03f6b54df0..38a6322ffd 100644 --- a/conf/schema/fire_hydrant.json +++ b/conf/schema/fire_hydrant.json @@ -1,10 +1,6 @@ [ { "dataType": "real", - "geometries": [ - "node", - "way" - ], "name": "fire_hydrant:diameter", "objectType": "tag" } diff --git a/conf/schema/frequency.json b/conf/schema/frequency.json index 4a450fcdce..00129a08c1 100644 --- a/conf/schema/frequency.json +++ b/conf/schema/frequency.json @@ -1,11 +1,6 @@ [ { "dataType": "real", - "geometries": [ - "node", - "way", - "relation" - ], "name": "frequency", "objectType": "tag" } diff --git a/conf/schema/gauge.json b/conf/schema/gauge.json index 8963945b7e..e73a0f9914 100644 --- a/conf/schema/gauge.json +++ b/conf/schema/gauge.json @@ -1,11 +1,6 @@ [ { "dataType": "real", - "geometries": [ - "node", - "way", - "relation" - ], "name": "gauge", "objectType": "tag" } diff --git a/conf/schema/height.json b/conf/schema/height.json index 5d3d56c99a..c9522f450b 100644 --- a/conf/schema/height.json +++ b/conf/schema/height.json @@ -1,11 +1,6 @@ [ { "dataType": "real", - "geometries": [ - "node", - "way", - "relation" - ], "name": "height", "objectType": "tag" } diff --git a/conf/schema/hoot_tags.json b/conf/schema/hoot_tags.json index eaf54a2cb2..9ec5e97c72 100644 --- a/conf/schema/hoot_tags.json +++ b/conf/schema/hoot_tags.json @@ -1,11 +1,6 @@ [ { "dataType": "text", - "geometries": [ - "node", - "way", - "relation" - ], "influence": 1, "isA": "metadata", "name": "hoot:hash", diff --git a/conf/schema/is_in.json b/conf/schema/is_in.json index fc9eea54cd..2af7f9ee4e 100644 --- a/conf/schema/is_in.json +++ b/conf/schema/is_in.json @@ -1,11 +1,6 @@ [ { "dataType": "text", - "geometries": [ - "node", - "way", - "relation" - ], "name": "abstract_is_in", "influence": 1, "objectType": "tag" diff --git a/conf/schema/lanes.json b/conf/schema/lanes.json index d0d1c7563f..a9dd441263 100644 --- a/conf/schema/lanes.json +++ b/conf/schema/lanes.json @@ -1,11 +1,6 @@ [ { "dataType": "int", - "geometries": [ - "node", - "way", - "relation" - ], "name": "lanes", "objectType": "tag" } diff --git a/conf/schema/maxspeed.json b/conf/schema/maxspeed.json index 8991ccf9c7..207d85cdec 100644 --- a/conf/schema/maxspeed.json +++ b/conf/schema/maxspeed.json @@ -1,11 +1,6 @@ [ { "dataType": "real", - "geometries": [ - "node", - "way", - "relation" - ], "name": "maxspeed", "objectType": "tag" } diff --git a/conf/schema/metadata.json b/conf/schema/metadata.json index d0fdadbe73..c3b9aca4cd 100644 --- a/conf/schema/metadata.json +++ b/conf/schema/metadata.json @@ -1,11 +1,6 @@ [ { "dataType": "text", - "geometries": [ - "node", - "way", - "relation" - ], "influence": 0, "name": "metadata", "objectType": "tag" diff --git a/conf/schema/name.json b/conf/schema/name.json index c74a015858..db21a53c6e 100644 --- a/conf/schema/name.json +++ b/conf/schema/name.json @@ -4,11 +4,6 @@ "name" ], "dataType": "text", - "geometries": [ - "node", - "way", - "relation" - ], "influence": 2, "name": "abstract_name", "objectType": "tag" @@ -58,11 +53,6 @@ "pseudoname" ], "dataType": "text", - "geometries": [ - "node", - "way", - "relation" - ], "influence": 1, "name": "pseudo_name", "objectType": "tag" diff --git a/conf/schema/note.json b/conf/schema/note.json index 5022ad1398..76094b1542 100644 --- a/conf/schema/note.json +++ b/conf/schema/note.json @@ -1,11 +1,6 @@ [ { "dataType": "text", - "geometries": [ - "node", - "way", - "relation" - ], "influence": 0, "name": "note", "objectType": "tag" diff --git a/conf/schema/opening_hours.json b/conf/schema/opening_hours.json index 1eaef58efa..7a3c9ab381 100644 --- a/conf/schema/opening_hours.json +++ b/conf/schema/opening_hours.json @@ -1,10 +1,6 @@ [ { "dataType": "text", - "geometries": [ - "node", - "way" - ], "name": "opening_hours", "objectType": "tag" } diff --git a/conf/schema/source.json b/conf/schema/source.json index 4e0ed3b12c..8485a8afa1 100644 --- a/conf/schema/source.json +++ b/conf/schema/source.json @@ -6,11 +6,6 @@ }, { "dataType": "text", - "geometries": [ - "node", - "way", - "relation" - ], "influence": 1, "isA": "metadata", "name": "source", diff --git a/conf/schema/url.json b/conf/schema/url.json index 2402c5631f..181806749c 100644 --- a/conf/schema/url.json +++ b/conf/schema/url.json @@ -1,11 +1,6 @@ [ { "dataType": "text", - "geometries": [ - "node", - "way", - "relation" - ], "name": "url", "objectType": "tag" } diff --git a/conf/schema/waterway.json b/conf/schema/waterway.json index e4fbac67af..fab1c4b1ee 100644 --- a/conf/schema/waterway.json +++ b/conf/schema/waterway.json @@ -68,6 +68,9 @@ "objectType": "tag" }, { + "geometries": [ + "area" + ], "isA": "waterway", "name": "waterway=riverbank", "objectType": "tag" diff --git a/conf/schema/website.json b/conf/schema/website.json index cf363f3c71..cbea55dd91 100644 --- a/conf/schema/website.json +++ b/conf/schema/website.json @@ -1,11 +1,6 @@ [ { "dataType": "text", - "geometries": [ - "node", - "way", - "relation" - ], "name": "website", "objectType": "tag" } diff --git a/conf/schema/width.json b/conf/schema/width.json index 311100dc14..bd84e02f1d 100644 --- a/conf/schema/width.json +++ b/conf/schema/width.json @@ -1,11 +1,6 @@ [ { "dataType": "real", - "geometries": [ - "node", - "way", - "relation" - ], "name": "width", "objectType": "tag" } diff --git a/conf/schema/wikipedia.json b/conf/schema/wikipedia.json index 2f35541d09..7da42b152e 100644 --- a/conf/schema/wikipedia.json +++ b/conf/schema/wikipedia.json @@ -1,11 +1,6 @@ [ { "dataType": "text", - "geometries": [ - "node", - "way", - "relation" - ], "name": "wikipedia", "objectType": "tag" } diff --git a/hoot-core-test/src/test/cpp/hoot/core/util/ElementConverterTest.cpp b/hoot-core-test/src/test/cpp/hoot/core/util/ElementConverterTest.cpp new file mode 100644 index 0000000000..664873789a --- /dev/null +++ b/hoot-core-test/src/test/cpp/hoot/core/util/ElementConverterTest.cpp @@ -0,0 +1,230 @@ +/* + * This file is part of Hootenanny. + * + * Hootenanny is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * -------------------------------------------------------------------- + * + * The following copyright notices are generated automatically. If you + * have a new notice to add, please use the format: + * " * @copyright Copyright ..." + * This will properly maintain the copyright information. DigitalGlobe + * copyrights will be updated automatically. + * + * @copyright Copyright (C) 2018 DigitalGlobe (http://www.digitalglobe.com/) + */ + +// Hoot +#include +#include +#include +#include +#include + +// CPP Unit +#include +#include +#include +#include + +// Geos +#include +#include +#include +#include +using namespace geos::geom; + +namespace hoot +{ + +class ElementConverterTest : public HootTestFixture +{ + CPPUNIT_TEST_SUITE(ElementConverterTest); + CPPUNIT_TEST(calculateLengthTest); + CPPUNIT_TEST(convertToGeometryTest); + CPPUNIT_TEST(convertToLinestringTest); + CPPUNIT_TEST(convertToPolygonTest); + CPPUNIT_TEST(getGeometryTypeTest); + CPPUNIT_TEST_SUITE_END(); + +public: + + void calculateLengthTest() + { + OsmMapPtr map(new OsmMap()); + MapProjector::projectToPlanar(map); + QList nodes; + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 0.0, 0.0)); + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 10.0, 0.0)); + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 10.0, 10.0)); + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 0.0, 10.0)); + WayPtr way = TestUtils::createWay(map, nodes); + ElementConverter ec(map); + + // Check the length of a way + CPPUNIT_ASSERT_DOUBLES_EQUAL(30.0, ec.calculateLength(way), 1e-3); + + // The length of a node should be 0 (error) + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, ec.calculateLength(map->getNode(way->getNodeId(0))), 1e-3); + + // The length of an area should be 0 (error) + way->addNode(way->getNodeId(0)); + way->setTag("building", "yes"); + CPPUNIT_ASSERT_DOUBLES_EQUAL(0.0, ec.calculateLength(way), 1e-3); + } + + void convertToGeometryTest() + { + OsmMapPtr map(new OsmMap()); + ElementConverter ec(map); + QList nodes; + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 0.0, 0.0)); + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 10.0, 0.0)); + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 10.0, 10.0)); + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 0.0, 10.0)); + + // Check the geometry of a node + boost::shared_ptr geometry = ec.convertToGeometry(ElementPtr(nodes[0])); + HOOT_STR_EQUALS("Point", geometry->getGeometryType()); + + // Check the geometry of a way + WayPtr way = TestUtils::createWay(map, nodes); + geometry = ec.convertToGeometry(way); + HOOT_STR_EQUALS("LineString", geometry->getGeometryType()); + + // Check the geometry of a closed way without any tags + way->addNode(way->getNodeId(0)); + geometry = ec.convertToGeometry(way); + HOOT_STR_EQUALS("LineString", geometry->getGeometryType()); + // Add the building tag to make it an area + way->setTag("building", "yes"); + geometry = ec.convertToGeometry(way); + HOOT_STR_EQUALS("Polygon", geometry->getGeometryType()); + + // Check the geometry of a relation + QList nodes2; + nodes2.push_back(TestUtils::createNode(map, Status::Unknown1, 2.5, 2.5)); + nodes2.push_back(TestUtils::createNode(map, Status::Unknown1, 7.5, 2.5)); + nodes2.push_back(TestUtils::createNode(map, Status::Unknown1, 7.5, 7.5)); + nodes2.push_back(TestUtils::createNode(map, Status::Unknown1, 2.5, 7.5)); + nodes2.push_back(nodes2[0]); + WayPtr way2 = TestUtils::createWay(map, nodes2); + way2->setTag("building", "yes"); + RelationPtr relation = TestUtils::createRelation(map, QList()); + relation->setType(MetadataTags::RelationMultiPolygon()); + relation->addElement(MetadataTags::RelationOuter(), way); + relation->addElement(MetadataTags::RelationInner(), way2); + geometry = ec.convertToGeometry(relation); + HOOT_STR_EQUALS("MultiPolygon", geometry->getGeometryType()); + } + + void convertToLinestringTest() + { + OsmMapPtr map(new OsmMap()); + ElementConverter ec(map); + QList nodes; + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 0.0, 0.0)); + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 10.0, 0.0)); + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 10.0, 10.0)); + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 0.0, 10.0)); + WayPtr way = TestUtils::createWay(map, nodes); + // Check the convert to linestring method + boost::shared_ptr ls = ec.convertToLineString(way); + CPPUNIT_ASSERT_EQUAL(Dimension::L, ls->getDimension()); + CPPUNIT_ASSERT_DOUBLES_EQUAL(30.0, ls->getLength(), 1e-3); + HOOT_STR_EQUALS("LineString", ls->getGeometryType()); + } + + void convertToPolygonTest() + { + OsmMapPtr map(new OsmMap()); + ElementConverter ec(map); + QList nodes; + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 0.0, 0.0)); + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 10.0, 0.0)); + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 10.0, 10.0)); + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 0.0, 10.0)); + nodes.push_back(nodes[0]); + WayPtr way = TestUtils::createWay(map, nodes); + // Check the covert to polygon method + boost::shared_ptr poly = ec.convertToPolygon(way); + CPPUNIT_ASSERT_EQUAL(Dimension::A, poly->getDimension()); + CPPUNIT_ASSERT_DOUBLES_EQUAL(100.0, poly->getArea(), 1e-3); + HOOT_STR_EQUALS("Polygon", poly->getGeometryType()); + } + + void getGeometryTypeTest() + { + OsmMapPtr map(new OsmMap()); + ElementConverter ec(map); + QList nodes; + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 0.0, 0.0)); + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 10.0, 0.0)); + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 10.0, 10.0)); + nodes.push_back(TestUtils::createNode(map, Status::Unknown1, 0.0, 10.0)); + WayPtr way = TestUtils::createWay(map, nodes); + // non-closed linestring + CPPUNIT_ASSERT_EQUAL(ec.getGeometryType(way), GEOS_LINESTRING); + + // Close the way + way->addNode(nodes[0]->getId()); + // Set FCODE to + way->setTag("F_CODE", "BH140"); + CPPUNIT_ASSERT_EQUAL(ec.getGeometryType(way), GEOS_POLYGON); + + // Set WCC + way->setTag("WCC", "7"); + CPPUNIT_ASSERT_EQUAL(ec.getGeometryType(way), GEOS_POLYGON); + + // Test against a single node + CPPUNIT_ASSERT_EQUAL(ec.getGeometryType(nodes[0]), GEOS_POINT); + + // Relation geometry types + QList elements; + for (QList::iterator it = nodes.begin(); it != nodes.end(); ++it) + elements.append(*it); + RelationPtr relation = TestUtils::createRelation(map, elements); + // Reviews are collections + relation->setType(MetadataTags::RelationReview()); + CPPUNIT_ASSERT_EQUAL(ec.getGeometryType(relation), GEOS_GEOMETRYCOLLECTION); + + // Multipoint types that come from GeoJSON are multipoint + relation->setType(MetadataTags::RelationMultiPoint()); + CPPUNIT_ASSERT_EQUAL(ec.getGeometryType(relation), GEOS_MULTIPOINT); + + // Restriction relations are collections + relation->setType(MetadataTags::RelationRestriction()); + CPPUNIT_ASSERT_EQUAL(ec.getGeometryType(relation), GEOS_GEOMETRYCOLLECTION); + + // Multipolygon check + relation->setType(MetadataTags::RelationMultiPolygon()); + CPPUNIT_ASSERT_EQUAL(ec.getGeometryType(relation), GEOS_MULTIPOLYGON); + + // Boundaries are multilinestrings + relation->setType(MetadataTags::RelationBoundary()); + CPPUNIT_ASSERT_EQUAL(ec.getGeometryType(relation), GEOS_MULTILINESTRING); + + // Empty relations with no members are collections also + elements.clear(); + relation = TestUtils::createRelation(map, elements); + CPPUNIT_ASSERT_EQUAL(ec.getGeometryType(relation), GEOS_GEOMETRYCOLLECTION); + } + +}; + +CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(ElementConverterTest, "quick"); +//CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(ElementConverterTest, "current"); + +} + diff --git a/hoot-core/src/main/cpp/hoot/core/elements/Way.cpp b/hoot-core/src/main/cpp/hoot/core/elements/Way.cpp index adabe1dbf0..23a0a0bd2d 100644 --- a/hoot-core/src/main/cpp/hoot/core/elements/Way.cpp +++ b/hoot-core/src/main/cpp/hoot/core/elements/Way.cpp @@ -349,6 +349,11 @@ bool Way::isFirstLastNodeIdentical() const return ( getFirstNodeId() == getLastNodeId() ); } +bool Way::isClosedArea() const +{ + return getNodeCount() > 3 && getFirstNodeId() == getLastNodeId(); +} + long Way::getPid(const ConstWayPtr& p, const ConstWayPtr& c) { if (!p && !c) return WayData::PID_EMPTY; diff --git a/hoot-core/src/main/cpp/hoot/core/elements/Way.h b/hoot-core/src/main/cpp/hoot/core/elements/Way.h index 5ff7f1543f..7f68849bd8 100644 --- a/hoot-core/src/main/cpp/hoot/core/elements/Way.h +++ b/hoot-core/src/main/cpp/hoot/core/elements/Way.h @@ -155,6 +155,12 @@ class Way : public Element */ bool isFirstLastNodeIdentical() const; + /** + * Returns true if there are more than 3 nodes and the first and last nodes in the Way are the + * same. Otherwise returns false + */ + bool isClosedArea() const; + /** * Remove all instances of the node with the specified id. If the node isn't in this way then * nothing happens. diff --git a/hoot-core/src/main/cpp/hoot/core/schema/OsmSchema.cpp b/hoot-core/src/main/cpp/hoot/core/schema/OsmSchema.cpp index fb82b2e2fe..c732a414b0 100644 --- a/hoot-core/src/main/cpp/hoot/core/schema/OsmSchema.cpp +++ b/hoot-core/src/main/cpp/hoot/core/schema/OsmSchema.cpp @@ -198,21 +198,18 @@ OsmSchemaCategory OsmSchemaCategory::fromStringList(const QStringList &s) return result; } -uint16_t OsmGeometries::fromString(const QString& s) +OsmGeometries::Type OsmGeometries::fromString(const QString& s) { - uint16_t result = 0; + Type result = Empty; - // breaking coding convention for the sake of readability/brevity. - if (s == "node") result = Node; - else if (s == "area") result = Area; + if (s == "node") result = Node; + else if (s == "area") result = Area; else if (s == "linestring") result = LineString; - else if (s == "closedway") result = ClosedWay; - else if (s == "way") result = Way; - else if (s == "relation") result = Relation; + else if (s == "closedway") result = ClosedWay; + else if (s == "way") result = Way; + else if (s == "relation") result = Relation; else - { throw HootException("Unexpected enumerated type when parsing OsmGeometries: " + s); - } return result; } @@ -1779,6 +1776,35 @@ bool OsmSchema::isAreaForStats(const ConstElementPtr& e) const return isAreaForStats(e->getTags(), e->getElementType()); } +bool OsmSchema::allowsFor(const Tags& t, const ElementType& /*type*/, OsmGeometries::Type geometries) +{ + // Empty tags shouldn't allow for anything + if (t.size() == 0) + return false; + int usableTags = 0; + OsmGeometries::Type value = OsmGeometries::All; + for (Tags::const_iterator it = t.constBegin(); it != t.constEnd(); ++it) + { + const SchemaVertex& tv = getTagVertex(it.key() + "=" + it.value()); + // Unknown vertex types aren't usable tags + if (tv.getType() != SchemaVertex::UnknownVertexType && tv.geometries != OsmGeometries::Empty) + { + value = static_cast(value & tv.geometries); + usableTags++; + } + } + // Unusable tags shouldn't allow for anything + if (usableTags == 0) + return false; + // Check geometries against usable tags + return (value & geometries) != OsmGeometries::Empty; +} + +bool OsmSchema::allowsFor(const ConstElementPtr& e, OsmGeometries::Type geometries) +{ + return allowsFor(e->getTags(), e->getElementType(), geometries); +} + bool OsmSchema::isBuilding(const Tags& t, const ElementType& type) const { bool result = false; diff --git a/hoot-core/src/main/cpp/hoot/core/schema/OsmSchema.h b/hoot-core/src/main/cpp/hoot/core/schema/OsmSchema.h index 6c4941292c..d48c2458dd 100644 --- a/hoot-core/src/main/cpp/hoot/core/schema/OsmSchema.h +++ b/hoot-core/src/main/cpp/hoot/core/schema/OsmSchema.h @@ -56,23 +56,22 @@ enum EdgeType }; struct OsmSchemaCategory { - typedef enum Type + enum Type { - Empty = 0, - Poi = 1, - Building = 2, - Transportation = 4, - Use = 8, - Name = 16, - PseudoName = 32, - // Human Geography POI. See ticket #6853 for a definition of a "HGIS POI" - HgisPoi = 64, - Multiuse = 128, + Empty = 0x00, + Poi = 0x01, + Building = 0x02, + Transportation = 0x04, + Use = 0x08, + Name = 0x10, + PseudoName = 0x20, + HgisPoi = 0x40, // Human Geography POI. See ticket #6853 for a definition of a "HGIS POI" + Multiuse = 0x80, All = Poi | Building | Transportation | Use | Name | HgisPoi | Multiuse - } Type; + }; OsmSchemaCategory() : _type(Empty) {} - OsmSchemaCategory(OsmSchemaCategory::Type t) : _type(t) {} + OsmSchemaCategory(Type t) : _type(t) {} static OsmSchemaCategory building() { return OsmSchemaCategory(Building); } static OsmSchemaCategory hgisPoi() { return OsmSchemaCategory(HgisPoi); } @@ -196,43 +195,35 @@ struct OsmSchemaCategory { private: - OsmSchemaCategory::Type _type; + Type _type; }; inline OsmSchemaCategory operator&(const OsmSchemaCategory t1, const OsmSchemaCategory t2) { - return OsmSchemaCategory((OsmSchemaCategory::Type)((int)t1.getEnum() & (int)t2.getEnum())); + return OsmSchemaCategory((OsmSchemaCategory::Type)(t1.getEnum() & t2.getEnum())); } inline OsmSchemaCategory operator|(const OsmSchemaCategory t1, const OsmSchemaCategory t2) { - return OsmSchemaCategory((OsmSchemaCategory::Type)((int)t1.getEnum() | (int)t2.getEnum())); -} - -inline OsmSchemaCategory operator|(const OsmSchemaCategory::Type t1, const OsmSchemaCategory t2) -{ - return OsmSchemaCategory((OsmSchemaCategory::Type)((int)t1 | (int)t2.getEnum())); -} - -inline OsmSchemaCategory operator|(const OsmSchemaCategory t1, const OsmSchemaCategory::Type t2) -{ - return OsmSchemaCategory((OsmSchemaCategory::Type)((int)t1.getEnum() | (int)t2)); + return OsmSchemaCategory((OsmSchemaCategory::Type)(t1.getEnum() | t2.getEnum())); } // explicitly put these types in their own name scope. Use with OsmGeometries::Node, etc. struct OsmGeometries { - enum e + enum Type : uint16_t { - Node=0x01, - Area=0x02, - LineString=0x04, - ClosedWay=0x08, - Way=Area | LineString | ClosedWay, - Relation=0x10 + Empty = 0x00, + Node = 0x01, + Area = 0x02, + LineString = 0x04, + ClosedWay = 0x08, + Way = Area | LineString | ClosedWay, + Relation = 0x10, + All = Relation | Way | Node }; - static uint16_t fromString(const QString& s); + static Type fromString(const QString& s); }; struct TagEdge @@ -355,6 +346,9 @@ class OsmSchema bool isAreaForStats(const Tags& t, const ElementType& type) const; bool isAreaForStats(const ConstElementPtr& e) const; + bool allowsFor(const Tags& t, const ElementType& type, OsmGeometries::Type geometries); + bool allowsFor(const ConstElementPtr& e, OsmGeometries::Type geometries); + bool isNonBuildingArea(const ConstElementPtr& e) const; bool isBuilding(const Tags& t, const ElementType& type) const; diff --git a/hoot-core/src/main/cpp/hoot/core/schema/SchemaChecker.cpp b/hoot-core/src/main/cpp/hoot/core/schema/SchemaChecker.cpp index 89061f8ce7..f631587e2d 100644 --- a/hoot-core/src/main/cpp/hoot/core/schema/SchemaChecker.cpp +++ b/hoot-core/src/main/cpp/hoot/core/schema/SchemaChecker.cpp @@ -22,7 +22,7 @@ * This will properly maintain the copyright information. DigitalGlobe * copyrights will be updated automatically. * - * @copyright Copyright (C) 2015, 2017 DigitalGlobe (http://www.digitalglobe.com/) + * @copyright Copyright (C) 2015, 2017, 2018 DigitalGlobe (http://www.digitalglobe.com/) */ #include "SchemaChecker.h" @@ -62,30 +62,9 @@ void SchemaChecker::checkUnknownVertexType() } } -void SchemaChecker::checkEmptyGeometry() -{ - for (unsigned int i = 0; i < _schemaVertexList.size(); i++) - { - SchemaVertex schemaVertex = _schemaVertexList[i]; - if (schemaVertex.geometries == 0) - { - if (logWarnCount < Log::getWarnMessageLimit()) - { - LOG_WARN("Warning: empty geometries. " << schemaVertex.name); - } - else if (logWarnCount == Log::getWarnMessageLimit()) - { - LOG_WARN(className() << ": " << Log::LOG_WARN_LIMIT_REACHED_MESSAGE); - } - logWarnCount++; - } - } -} - void SchemaChecker::check() { checkUnknownVertexType(); - checkEmptyGeometry(); } } diff --git a/hoot-core/src/main/cpp/hoot/core/schema/SchemaChecker.h b/hoot-core/src/main/cpp/hoot/core/schema/SchemaChecker.h index 6a17b2fcee..19e62f2c71 100644 --- a/hoot-core/src/main/cpp/hoot/core/schema/SchemaChecker.h +++ b/hoot-core/src/main/cpp/hoot/core/schema/SchemaChecker.h @@ -22,7 +22,7 @@ * This will properly maintain the copyright information. DigitalGlobe * copyrights will be updated automatically. * - * @copyright Copyright (C) 2015, 2017 DigitalGlobe (http://www.digitalglobe.com/) + * @copyright Copyright (C) 2015, 2017, 2018 DigitalGlobe (http://www.digitalglobe.com/) */ #ifndef __SCHEMA_CHECKER_H__ #define __SCHEMA_CHECKER_H__ @@ -60,11 +60,6 @@ class SchemaChecker void checkUnknownVertexType(); - /** - * Print out error message if schemavertex has empty geometry. - */ - void checkEmptyGeometry(); - /** * Print out error message if schemavertex has empty geometry or geometries are empty */ diff --git a/hoot-core/src/main/cpp/hoot/core/util/ElementConverter.cpp b/hoot-core/src/main/cpp/hoot/core/util/ElementConverter.cpp index 809ba8bd38..8d7e8bd10a 100644 --- a/hoot-core/src/main/cpp/hoot/core/util/ElementConverter.cpp +++ b/hoot-core/src/main/cpp/hoot/core/util/ElementConverter.cpp @@ -275,6 +275,8 @@ geos::geom::GeometryTypeId ElementConverter::getGeometryType(const ConstElementP { if (w->isValidPolygon() && OsmSchema::getInstance().isAreaForStats(w->getTags(), ElementType::Way)) return GEOS_POLYGON; + else if (w->isClosedArea() && OsmSchema::getInstance().allowsFor(e, OsmGeometries::Area)) + return GEOS_POLYGON; else return GEOS_LINESTRING; } @@ -282,6 +284,8 @@ geos::geom::GeometryTypeId ElementConverter::getGeometryType(const ConstElementP { if (w->isValidPolygon() && OsmSchema::getInstance().isArea(w->getTags(), ElementType::Way)) return GEOS_POLYGON; + else if (w->isClosedArea() && OsmSchema::getInstance().allowsFor(e, OsmGeometries::Area)) + return GEOS_POLYGON; else return GEOS_LINESTRING; } @@ -318,7 +322,7 @@ geos::geom::GeometryTypeId ElementConverter::getGeometryType(const ConstElementP else if (r->isReview()) return GEOS_GEOMETRYCOLLECTION; // MultiPoint comes from GeoJSON - else if (r->getType() == "multipoint") + else if (r->getType() == MetadataTags::RelationMultiPoint()) return GEOS_MULTIPOINT; } diff --git a/plugins/TranslationServer.js b/plugins/TranslationServer.js index 5bfbb7a841..be8f5f077e 100644 --- a/plugins/TranslationServer.js +++ b/plugins/TranslationServer.js @@ -261,6 +261,8 @@ var postHandler = function(data) { var translation = data.transMap[data.transDir][data.translation]; hoot.Settings.set({"ogr.esri.fcsubtype": "false"}); hoot.Settings.set({"ogr.note.extra": "attribute"}); + hoot.Settings.set({"reader.add.source.datetime": "false"}); + if (data.transDir === "toogr") { hoot.Settings.set({"osm.map.writer.schema": data.translation}); } else { diff --git a/plugins/tds61.js b/plugins/tds61.js index 4a521a20b0..320941b112 100644 --- a/plugins/tds61.js +++ b/plugins/tds61.js @@ -1120,7 +1120,7 @@ tds61 = { if ('ford' in tags && !(tags.highway)) tags.highway = 'road'; // AK030 - Amusement Parks - // F_CODE translation == tourism but FFN translation could be leisure. + // F_CODE translation == tourism but FFN translation could be leisure. // E.g. water parks if (attrs.F_CODE == 'AK030') { @@ -1164,6 +1164,13 @@ tds61 = { tags.area = 'yes'; } + if (geometryType == 'Area' && tags.waterway == 'river') + { + // Debug + // print('Changing river to riverbank'); + tags.waterway = 'riverbank'; + } + // Fix the ZI020_GE4X Values var ge4meta = ['is_in:country_code','country_code:second','country_code:third','country_code:fourth']; @@ -2140,6 +2147,7 @@ tds61 = { // This is the main routine to convert _TO_ OSM toOsm : function(attrs, layerName, geometryType) { + tags = {}; // The final output Tag list // Setup config variables. We could do this in initialize() but some things don't call it :-( @@ -2290,6 +2298,7 @@ tds61 = { // This is the main routine to convert _TO_ TDS toTds : function(tags, elementType, geometryType) { + var tableName = ''; // The final table name var returnData = []; // The array of features to return attrs = {}; // The output attributes diff --git a/plugins/test/basin_reservoir.js b/plugins/test/basin_reservoir.js new file mode 100644 index 0000000000..cbffb22045 --- /dev/null +++ b/plugins/test/basin_reservoir.js @@ -0,0 +1,128 @@ +var assert = require('assert'), + http = require('http'), + xml2js = require('xml2js'), + fs = require('fs'), + httpMocks = require('node-mocks-http'), + osmtogeojson = require('osmtogeojson'), + DOMParser = new require('xmldom').DOMParser + parser = new DOMParser(); + +var server = require('../TranslationServer.js'); + +describe('TranslationServer', function () { + + it('should translate Basin (F_CODE=BH082 & IWT=5) from tdsv61 -> osm -> tdsv61', function() { + + var data = '\ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + '; + + var osm_xml = server.handleInputs({ + osm: data, + method: 'POST', + translation: 'TDSv61', + path: '/translateFrom' + }); + + // console.log(osm_xml); + + var xml = parser.parseFromString(osm_xml); + var gj = osmtogeojson(xml); + + assert.equal(xml.getElementsByTagName("osm")[0].getAttribute("schema"), "OSM"); + + var tags = gj.features[0].properties; + assert.equal(tags['natural'], 'water'); + assert.equal(tags['landuse'], 'basin'); + assert.equal(tags['water'], 'lake'); + + var tds_xml = server.handleInputs({ + osm: osm_xml, + method: 'POST', + translation: 'TDSv61', + path: '/translateTo' + }); + + // console.log(tds_xml); + + xml = parser.parseFromString(tds_xml); + gj = osmtogeojson(xml); + + assert.equal(xml.getElementsByTagName("osm")[0].getAttribute("schema"), "TDSv61"); + + var tags = gj.features[0].properties; + assert.equal(tags["F_CODE"], 'BH082'); + assert.equal(tags["IWT"], '5'); + + }); + + it('should translate Reservoir (F_CODE=BH082 & IWT=4) from tdsv61 -> osm -> tdsv61', function() { + + var data = '\ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + '; + + var osm_xml = server.handleInputs({ + osm: data, + method: 'POST', + translation: 'TDSv61', + path: '/translateFrom' + }); + + // console.log(osm_xml); + + var xml = parser.parseFromString(osm_xml); + var gj = osmtogeojson(xml); + + assert.equal(xml.getElementsByTagName("osm")[0].getAttribute("schema"), "OSM"); + + var tags = gj.features[0].properties; + assert.equal(tags['natural'], 'water'); + assert.equal(tags['man_made'], 'reservoir'); + assert.equal(tags['water'], 'lake'); + + var tds_xml = server.handleInputs({ + osm: osm_xml, + method: 'POST', + translation: 'TDSv61', + path: '/translateTo' + }); + + // console.log(tds_xml); + + xml = parser.parseFromString(tds_xml); + gj = osmtogeojson(xml); + + assert.equal(xml.getElementsByTagName("osm")[0].getAttribute("schema"), "TDSv61"); + + var tags = gj.features[0].properties; + assert.equal(tags["F_CODE"], 'BH082'); + assert.equal(tags["IWT"], '4'); + + }); +}); + diff --git a/plugins/test/source_datetime_tds61.js b/plugins/test/source_datetime_tds61.js index c3882cf3ad..9609d066e3 100644 --- a/plugins/test/source_datetime_tds61.js +++ b/plugins/test/source_datetime_tds61.js @@ -197,13 +197,58 @@ describe('TranslationServer', function () { xml = parser.parseFromString(tds_xml); gj = osmtogeojson(xml); - assert.equal(xml.getElementsByTagName("osm")[0].getAttribute("schema"), "TDSv61"); var tags = gj.features[0].properties; assert.equal(tags["F_CODE"], 'AL013'); assert.equal(tags["ZI001_SDV"], '2017-07-02'); + }); + + it('should NOT translate timestamp to source:datetime for osm -> tdsv61', function() { + + var data = '\ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + '; + + var osm_xml = server.handleInputs({ + osm: data, + method: 'POST', + translation: 'TDSv61', + path: '/translateTo' + }); + + // console.log(osm_xml); + + var xml = parser.parseFromString(osm_xml); + var gj = osmtogeojson(xml); + + assert.equal(xml.getElementsByTagName("osm")[0].getAttribute("schema"), "TDSv61"); + var tags = gj.features[0].properties; + assert.equal(tags["ZI001_SDV"], "2017-08-13 17:43:33"); + + }); }); diff --git a/plugins/test/tag1.js b/plugins/test/tag1.js new file mode 100644 index 0000000000..540294ce36 --- /dev/null +++ b/plugins/test/tag1.js @@ -0,0 +1,51 @@ +var assert = require('assert'), + http = require('http'), + xml2js = require('xml2js'), + fs = require('fs'), + httpMocks = require('node-mocks-http'), + osmtogeojson = require('osmtogeojson'), + DOMParser = new require('xmldom').DOMParser + parser = new DOMParser(); + +var server = require('../TranslationServer.js'); + +describe('TranslationServer', function () { + + it('should translate invalid feature with error and not tag1 from osm -> tdsv61 -> osm', function() { + + var osm_xml = '\ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + '; + + var tds_xml = server.handleInputs({ + osm: osm_xml, + method: 'POST', + translation: 'TDSv61', + path: '/translateTo' + }); + + // console.log(tds_xml); + + xml = parser.parseFromString(tds_xml); + gj = osmtogeojson(xml); + + assert.equal(xml.getElementsByTagName("osm")[0].getAttribute("schema"), "TDSv61"); + + var tags = gj.features[0].properties; + assert.equal(tags["error"], 'No Valid Feature Code'); + + }); + + +}); diff --git a/plugins/test/tests_to_fix.js b/plugins/test/tests_to_fix.js new file mode 100644 index 0000000000..8496a09aba --- /dev/null +++ b/plugins/test/tests_to_fix.js @@ -0,0 +1,102 @@ +var assert = require('assert'), + http = require('http'), + xml2js = require('xml2js'), + fs = require('fs'), + httpMocks = require('node-mocks-http'), + osmtogeojson = require('osmtogeojson'), + DOMParser = new require('xmldom').DOMParser + parser = new DOMParser(); + +var server = require('../TranslationServer.js'); + +describe('TranslationServer', function () { + + var cases = { + GB055: {aeroway: 'runway'}, + // AP030: {highway: 'road'}, + AL013: {building: 'yes'}, + // BH070: {ford: 'yes'}, + BH140: {waterway: 'riverbank'} + } + + Object.keys(cases).forEach(k => { + + var fcode = k; + var tag = cases[k]; + var tagKey = Object.keys(tag)[0]; + + it('should translate ' + fcode + ' from tdsv61 -> osm -> tdsv61', function() { + + var data = '\ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + \ + '; + + var osm_xml = server.handleInputs({ + osm: data, + method: 'POST', + translation: 'TDSv61', + path: '/translateFrom' + }); + + // console.log(osm_xml); + + var xml = parser.parseFromString(osm_xml); + var gj = osmtogeojson(xml); + + assert.equal(xml.getElementsByTagName("osm")[0].getAttribute("schema"), "OSM"); + + var tags = gj.features[0].properties; + assert.equal(tags[tagKey], tag[tagKey]); + + var tds_xml = server.handleInputs({ + osm: osm_xml, + method: 'POST', + translation: 'TDSv61', + path: '/translateTo' + }); + + // console.log(tds_xml); + + xml = parser.parseFromString(tds_xml); + gj = osmtogeojson(xml); + + assert.equal(xml.getElementsByTagName("osm")[0].getAttribute("schema"), "TDSv61"); + + var tags = gj.features[0].properties; + assert.equal(tags["F_CODE"], fcode); + + + osm_xml = server.handleInputs({ + osm: tds_xml, + method: 'POST', + translation: 'TDSv61', + path: '/translateFrom' + }); + + // console.log(osm_xml); + + var xml = parser.parseFromString(osm_xml); + var gj = osmtogeojson(xml); + + assert.equal(xml.getElementsByTagName("osm")[0].getAttribute("schema"), "OSM"); + + var tags = gj.features[0].properties; + assert.equal(tags[tagKey], tag[tagKey]); + + }); + + }); + + +});