diff --git a/layers/poi/mapping.yaml b/layers/poi/mapping.yaml index 964a007..84377be 100644 --- a/layers/poi/mapping.yaml +++ b/layers/poi/mapping.yaml @@ -9,6 +9,7 @@ def_poi_mapping_aerialway: &poi_mapping_aerialway # amenity values , see http://taginfo.openstreetmap.org/keys/amenity#values def_poi_mapping_amenity: &poi_mapping_amenity - arts_centre + - atm - bank - bar - bbq @@ -367,6 +368,12 @@ def_poi_fields: &poi_fields - name: sport key: sport type: string + - name: operator + key: operator + type: string + - name: network + key: network + type: string def_poi_mapping: &poi_mapping aerialway: *poi_mapping_aerialway diff --git a/layers/poi/mapping_diagram.png b/layers/poi/mapping_diagram.png index 1341ef0..0370c32 100644 Binary files a/layers/poi/mapping_diagram.png and b/layers/poi/mapping_diagram.png differ diff --git a/layers/poi/poi.yaml b/layers/poi/poi.yaml index 68d7a44..a59699f 100644 --- a/layers/poi/poi.yaml +++ b/layers/poi/poi.yaml @@ -94,6 +94,8 @@ layer: subclass: ['swimming_area', 'swimming'] castle: subclass: ['castle', 'ruins'] + atm: + subclass: ['atm'] subclass: description: | Original value of either the diff --git a/layers/poi/update_poi_point.sql b/layers/poi/update_poi_point.sql index 339fc2c..f7c81a2 100644 --- a/layers/poi/update_poi_point.sql +++ b/layers/poi/update_poi_point.sql @@ -15,6 +15,18 @@ BEGIN WHERE funicular = 'yes' AND subclass = 'station'; + -- ATM without name + -- use either operator or network + -- (using name for ATM is discouraged, see osm wiki) + UPDATE osm_poi_point + SET (name, tags) = ( + COALESCE(tags -> 'operator', tags -> 'network'), + tags || hstore('name', COALESCE(tags -> 'operator', tags -> 'network')) + ) + WHERE subclass = 'atm' + AND name = '' + AND COALESCE(tags -> 'operator', tags -> 'network') IS NOT NULL; + UPDATE osm_poi_point SET tags = update_tags(tags, geometry) WHERE COALESCE(tags->'name:latin', tags->'name:nonlatin', tags->'name_int') IS NULL diff --git a/tests/import/600_import-poi.osm b/tests/import/600_import-poi.osm new file mode 100644 index 0000000..0b7ceab --- /dev/null +++ b/tests/import/600_import-poi.osm @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/tests/test-post-import.sql b/tests/test-post-import.sql index 8fa194b..4f93097 100644 --- a/tests/test-post-import.sql +++ b/tests/test-post-import.sql @@ -160,6 +160,16 @@ BEGIN INSERT INTO omt_test_failures VALUES(500, 'import', 'osm_transportation_name_linestring z12 route_rank expected 1, got ' || cnt); END IF; + -- Test 600 + + -- verify that atms are imported with correct name which can come from tags like operator or network + SELECT COUNT(*) INTO cnt FROM osm_poi_point + WHERE subclass = 'atm' + AND tags->'name' = 'OpenMapTiles ATM'; + IF cnt <> 3 THEN + INSERT INTO omt_test_failures VALUES(600, 'import', 'osm_poi_point atm with name "OpenMapTiles ATM" expected 3, got ' || cnt); + END IF; + END; $$ diff --git a/tests/test-post-update.sql b/tests/test-post-update.sql index a6f4367..fd8152e 100644 --- a/tests/test-post-update.sql +++ b/tests/test-post-update.sql @@ -76,6 +76,22 @@ BEGIN INSERT INTO omt_test_failures VALUES(500, 'update', 'osm_transportation_linestring z9 update tags expected 1, got ' || cnt); END IF; + -- Test 600 + + -- check if name was applied correctly + SELECT COUNT(*) INTO cnt FROM osm_poi_point + WHERE subclass = 'atm' + AND tags->'name' = 'OpenMapTiles ATM'; + IF cnt <> 2 THEN + INSERT INTO omt_test_failures VALUES(600, 'update', 'osm_poi_point atm with name "OpenMapTiles ATM" expected 2, got ' || cnt); + END IF; + SELECT COUNT(*) INTO cnt FROM osm_poi_point + WHERE subclass = 'atm' + AND tags->'name' = 'New name'; + IF cnt <> 1 THEN + INSERT INTO omt_test_failures VALUES(600, 'update', 'osm_poi_point atm with name "New name" expected 1, got ' || cnt); + END IF; + END; $$; diff --git a/tests/update/600_update-poi.osc b/tests/update/600_update-poi.osc new file mode 100644 index 0000000..cb606c7 --- /dev/null +++ b/tests/update/600_update-poi.osc @@ -0,0 +1,13 @@ + + + + + + + + + +