aboutsummaryrefslogtreecommitdiff
path: root/data_extractor/data_extractor.lua
diff options
context:
space:
mode:
Diffstat (limited to 'data_extractor/data_extractor.lua')
-rw-r--r--data_extractor/data_extractor.lua76
1 files changed, 43 insertions, 33 deletions
diff --git a/data_extractor/data_extractor.lua b/data_extractor/data_extractor.lua
index 5f5cc9e..a51a1f1 100644
--- a/data_extractor/data_extractor.lua
+++ b/data_extractor/data_extractor.lua
@@ -2,43 +2,53 @@
-- Data: https://download.geofabrik.de/europe/denmark-latest.osm.pbf
local poi = osm2pgsql.define_table({
- name = 'poi',
- ids = { type = 'any', type_column = 'osm_type', id_column = 'osm_id' },
- columns = {
- { column = 'name' },
- { column = 'class', not_null = true },
- { column = 'subclass' },
- { column = 'brand' },
- { column = 'geom', type = 'point', not_null = true },
-}})
-
-function process_poi(object, geom)
- local a = {
- name = object.tags.name,
- geom = geom
- }
+ name = 'poi',
+ ids = { type = 'any', type_column = 'osm_type', id_column = 'osm_id' },
+ columns = {
+ { column = 'name' },
+ { column = 'country' },
+ { column = 'region' },
+ { column = 'class', not_null = true },
+ { column = 'subclass' },
+ { column = 'brand' },
+ { column = 'geom', type = 'point', not_null = true },
+ }})
+ function process_poi(object, geom)
+ local a = {
+ name = object.tags.name,
+ geom = geom
+ }
if object.tags.shop then
- a.class = 'shop'
- a.subclass = object.tags.shop
- a.brand = object.tags.brand
+ a.class = 'shop'
+ a.subclass = object.tags.shop
+ a.brand = object.tags.brand
+ elseif object.tags.highway then
+ a.class = 'highway'
+ a.subclass = object.tags.highway
+ elseif object.tags.public_transport == "station" or object.tags.railway == "station" then
+ a.class = 'railway'
+ a.subclass = 'station'
+ --elseif object.tags.brand == "McDonald's" then
+ -- a.class = 'amenity'
+ -- a.subclass = "McDonald's"
elseif object.tags.amenity then
- a.class = 'amenity'
- a.subclass = object.tags.amenity
- else
- return
- end
+ a.class = 'amenity'
+ a.subclass = object.tags.amenity
+ else
+ return
+ end
- poi:insert(a)
-end
+ poi:insert(a)
+ end
-function osm2pgsql.process_node(object)
- process_poi(object, object:as_point())
-end
+ function osm2pgsql.process_node(object)
+ process_poi(object, object:as_point())
+ end
-function osm2pgsql.process_way(object)
- if object.is_closed and object.tags.building then
- process_poi(object, object:as_polygon():centroid())
- end
-end
+ function osm2pgsql.process_way(object)
+ if object.is_closed and object.tags.building then
+ process_poi(object, object:as_polygon():centroid())
+ end
+ end