73 lines
1.2 KiB
Shell
Executable file
73 lines
1.2 KiB
Shell
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
if [ "$#" -ne 1 ]; then
|
|
echo "usage: $0 DE_VG250.gpkg"
|
|
exit 1
|
|
fi
|
|
|
|
INPUT="$1"
|
|
|
|
if [ ! -f "$INPUT" ]; then
|
|
echo "file not found: $INPUT"
|
|
exit 1
|
|
fi
|
|
|
|
: "${DATABASE_URL:?DATABASE_URL must be set}"
|
|
|
|
echo "Available layers:"
|
|
ogrinfo "$INPUT" | sed -n '1,80p'
|
|
|
|
echo
|
|
echo "Importing vg250_krs..."
|
|
|
|
ogr2ogr \
|
|
-f PostgreSQL \
|
|
"$DATABASE_URL" \
|
|
"$INPUT" \
|
|
-nln vg250_krs_import \
|
|
-nlt PROMOTE_TO_MULTI \
|
|
-t_srs EPSG:4326 \
|
|
-overwrite
|
|
|
|
echo "Import completed."
|
|
|
|
psql "$DATABASE_URL" <<'SQL'
|
|
TRUNCATE county_boundaries RESTART IDENTITY;
|
|
|
|
INSERT INTO county_boundaries (
|
|
name,
|
|
geometry
|
|
)
|
|
SELECT
|
|
COALESCE(
|
|
NULLIF("GEN", ''),
|
|
NULLIF("BEZ", ''),
|
|
NULLIF("ARS", ''),
|
|
'unknown'
|
|
) AS name,
|
|
|
|
ST_Multi(
|
|
ST_CollectionExtract(
|
|
ST_MakeValid(wkb_geometry),
|
|
3
|
|
)
|
|
)::geometry(MultiPolygon,4326)
|
|
|
|
FROM vg250_krs_import
|
|
|
|
WHERE wkb_geometry IS NOT NULL;
|
|
|
|
DROP TABLE vg250_krs_import;
|
|
|
|
CREATE INDEX county_boundaries_geometry_idx
|
|
ON county_boundaries
|
|
USING GIST (geometry);
|
|
|
|
ANALYZE county_boundaries;
|
|
SQL
|
|
|
|
echo
|
|
echo "Imported counties:"
|
|
psql "$DATABASE_URL" \
|
|
-c "SELECT id, name FROM county_boundaries ORDER BY name;"
|