diff --git a/init.py b/init.py index fdd9df4..b28c83f 100644 --- a/init.py +++ b/init.py @@ -8,7 +8,7 @@ DB_CONFIG = { "dbname": "ems", "user": "ems", "password": "qFadbNBSaEoc", - "host": "172.16.1.210", + "host": "localhost", "port": 5432, } @@ -17,15 +17,31 @@ ROOT_DIR = "./" def insert_bounds(entity_id, entity_type, geometry, conn): """Insert data into the bounds table.""" - published_at = datetime.now() try: with conn.cursor() as cur: + # Check if the GeoJSON is a GeometryCollection + if geometry.get('type') == 'GeometryCollection': + # Extract polygons from the GeometryCollection and convert them to MultiPolygon + geometry = { + "type": "MultiPolygon", + "coordinates": [ + geom["coordinates"] for geom in geometry["geometries"] if geom["type"] == "Polygon" + ] + } + + # Insert into the bounds table cur.execute( """ - INSERT INTO bounds (entity_id, entity_type, geometry, published_at) - VALUES (%s, %s, %s, %s); + INSERT INTO bounds (entity_id, entity_type, geometry) + VALUES (%s, %s, + ST_Transform( + ST_Multi( + ST_GeomFromGeoJSON(%s::JSON) + ), + 3857) + ); """, - (entity_id, entity_type, json.dumps(geometry), published_at) + (entity_id, entity_type, json.dumps(geometry)) ) conn.commit() except Exception as e: