import json import os with open("data/boundaries/jordan_adm0.geojson", "r") as f: adm0 = json.load(f) with open("data/boundaries/jordan_adm1.geojson", "r") as f: adm1 = json.load(f) lines = [] lines.append("BEGIN;") lines.append("-- 1. Delete previous dummy borders") lines.append("DELETE FROM planet_osm_line WHERE osm_id >= 999000 AND osm_id <= 999999;") lines.append("DELETE FROM planet_osm_polygon WHERE osm_id >= 999000 AND osm_id <= 999999;") lines.append("") # National border (ADM0) geom0_str = json.dumps(adm0["features"][0]["geometry"]).replace("'", "''") lines.append("-- 2. Official Jordan National Boundary (ADM0)") lines.append(f"""INSERT INTO planet_osm_line (osm_id, boundary, admin_level, name, way) SELECT 999000, 'administrative', '2', 'المملكة الأردنية الهاشمية - Jordan Official National Border', ST_Transform(ST_Boundary(ST_SetSRID(ST_GeomFromGeoJSON('{geom0_str}'), 4326)), 3857); """) # Governorates (ADM1) for idx, feat in enumerate(adm1["features"]): name = feat["properties"].get("shapeName", f"Governorate {idx}").replace("'", "''") geom_str = json.dumps(feat["geometry"]).replace("'", "''") osm_id = 999010 + idx lines.append(f"""-- Governorate {name} INSERT INTO planet_osm_polygon (osm_id, boundary, admin_level, name, way) SELECT {osm_id}, 'administrative', '4', '{name}', ST_Transform(ST_SetSRID(ST_GeomFromGeoJSON('{geom_str}'), 4326), 3857); INSERT INTO planet_osm_line (osm_id, boundary, admin_level, name, way) SELECT {osm_id}, 'administrative', '4', '{name}', ST_Transform(ST_Boundary(ST_SetSRID(ST_GeomFromGeoJSON('{geom_str}')), 4326), 3857); """) lines.append("COMMIT;") with open("data/boundaries/import_official_jordan.sql", "w") as f: f.write("\n".join(lines)) print(f"Generated SQL with {len(adm1['features'])} governorates + ADM0 national boundary.")