aboutsummaryrefslogtreecommitdiff
path: root/data_extractor
diff options
context:
space:
mode:
authoruser <user@node5.net>2024-04-06 22:23:06 +0200
committeruser <user@node5.net>2024-04-06 22:23:06 +0200
commitfa360829bfe3f04f3e6d9af196dc9fd480864d4b (patch)
treedf04f3a39133d9edb0a46d591d23354849154c67 /data_extractor
initial commit - displays voronoi diagram
Diffstat (limited to 'data_extractor')
-rw-r--r--data_extractor/MakeFile2
-rw-r--r--data_extractor/data_extractor.lua36
2 files changed, 38 insertions, 0 deletions
diff --git a/data_extractor/MakeFile b/data_extractor/MakeFile
new file mode 100644
index 0000000..e9f64c7
--- /dev/null
+++ b/data_extractor/MakeFile
@@ -0,0 +1,2 @@
+process_data:
+ osm2pgsql -d shop -O flex -S data_extractor.lua ~/Downloads/denmark-latest.osm.pbf
diff --git a/data_extractor/data_extractor.lua b/data_extractor/data_extractor.lua
new file mode 100644
index 0000000..8a95e6c
--- /dev/null
+++ b/data_extractor/data_extractor.lua
@@ -0,0 +1,36 @@
+local shop = osm2pgsql.define_table({
+ name = 'shop',
+ ids = { type = 'any', type_column = 'osm_type', id_column = 'osm_id' },
+ columns = {
+ { column = 'name' },
+ { column = 'class', not_null = true },
+ { column = 'subclass' },
+ { 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
+ else
+ return
+ end
+
+ shop:insert(a)
+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
+