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 @@
+
+
+
+
+
+
+
+
+
+