aboutsummaryrefslogtreecommitdiff
path: root/src/db_handler.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/db_handler.py')
-rw-r--r--src/db_handler.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/db_handler.py b/src/db_handler.py
new file mode 100644
index 0000000..565819d
--- /dev/null
+++ b/src/db_handler.py
@@ -0,0 +1,35 @@
+import os
+
+import psycopg
+import yaml
+
+with open(os.path.join('configs', 'database.yml'), 'r') as file:
+ db_con_params = yaml.safe_load(file.read())
+
+
+def get_supermarkets() -> (list[dict], list[str]):
+ with psycopg.connect(**db_con_params, row_factory=psycopg.rows.dict_row) as conn:
+ with conn.cursor() as cur:
+ cur.execute("""
+ SELECT osm_type, osm_id, name,
+ ST_Y(ST_Transform(geom, 4326)) AS lat, ST_X(ST_Transform(geom, 4326)) AS long
+ FROM shop WHERE subclass = 'supermarket' AND name='Løvbjerg';
+ """)
+
+ supermarkets = cur.fetchall()
+ return supermarkets
+
+
+def voronoi_polygons() -> (list[dict], list[str]):
+ with psycopg.connect(**db_con_params, row_factory=psycopg.rows.dict_row) as conn:
+ with conn.cursor() as cur:
+ cur.execute("""
+ SELECT ST_AsGeoJSON(ST_Transform(ST_VoronoiPolygons(ST_Collect(geom)), 4326)) as geojson
+ FROM shop
+ WHERE subclass = 'supermarket'
+ AND name = 'Løvbjerg';
+ """)
+
+ voronoi_polygons = cur.fetchone()['geojson']
+
+ return voronoi_polygons