feat(tactical): add tactical line of sight API, elevation engine, dynamic step resolution, weather module and executive showcase
This commit is contained in:
Executable
+102
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
# ==============================================================================
|
||||
# Script: restore_osm_roads.sh
|
||||
# Purpose: Restore all OSM roads for Jordan & Syria cleanly using osm2pgsql,
|
||||
# then apply the exact border line without deleting any roads!
|
||||
# ==============================================================================
|
||||
|
||||
echo "================================================================="
|
||||
echo "🔄 Restoring OSM Road Network & Setting Official Jordan Border..."
|
||||
echo "================================================================="
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
if [ -f .env ]; then
|
||||
export $(grep -v '^#' .env | xargs)
|
||||
fi
|
||||
|
||||
DB_USER=${POSTGRES_USER:-mapuser}
|
||||
DB_NAME=${POSTGRES_DB:-mapdb}
|
||||
DATA_DIR="./infrastructure/osm-data"
|
||||
|
||||
mkdir -p "$DATA_DIR"
|
||||
|
||||
# Download Jordan PBF if not present or corrupt
|
||||
if [ ! -s "${DATA_DIR}/jordan-latest.osm.pbf" ]; then
|
||||
echo "📥 Downloading Jordan OSM data..."
|
||||
wget -q --show-progress -O "${DATA_DIR}/jordan-latest.osm.pbf" "https://download.geofabrik.de/asia/jordan-latest.osm.pbf"
|
||||
fi
|
||||
|
||||
if [ ! -s "${DATA_DIR}/syria-latest.osm.pbf" ]; then
|
||||
echo "📥 Downloading Syria OSM data..."
|
||||
wget -q --show-progress -O "${DATA_DIR}/syria-latest.osm.pbf" "https://download.geofabrik.de/asia/syria-latest.osm.pbf"
|
||||
fi
|
||||
|
||||
if [ ! -s "${DATA_DIR}/egypt-latest.osm.pbf" ]; then
|
||||
echo "📥 Downloading Egypt OSM data..."
|
||||
wget -q --show-progress -O "${DATA_DIR}/egypt-latest.osm.pbf" "https://download.geofabrik.de/africa/egypt-latest.osm.pbf" || true
|
||||
fi
|
||||
|
||||
if [ ! -s "${DATA_DIR}/iraq-latest.osm.pbf" ]; then
|
||||
echo "📥 Downloading Iraq OSM data..."
|
||||
wget -q --show-progress -O "${DATA_DIR}/iraq-latest.osm.pbf" "https://download.geofabrik.de/asia/iraq-latest.osm.pbf" || true
|
||||
fi
|
||||
|
||||
echo "🚀 Importing Jordan OSM roads into PostGIS..."
|
||||
docker compose --profile import run --rm osm-import \
|
||||
osm2pgsql --create --slim --cache 1000 \
|
||||
--database "$DB_NAME" --host db --user "$DB_USER" \
|
||||
/data/jordan-latest.osm.pbf
|
||||
|
||||
echo "🚀 Importing Syria OSM roads into PostGIS (--append)..."
|
||||
docker compose --profile import run --rm osm-import \
|
||||
osm2pgsql --append --slim --cache 1000 \
|
||||
--database "$DB_NAME" --host db --user "$DB_USER" \
|
||||
/data/syria-latest.osm.pbf
|
||||
|
||||
if [ -s "${DATA_DIR}/egypt-latest.osm.pbf" ]; then
|
||||
echo "🚀 Importing Egypt OSM data (--append)..."
|
||||
docker compose --profile import run --rm osm-import \
|
||||
osm2pgsql --append --slim --cache 1000 \
|
||||
--database "$DB_NAME" --host db --user "$DB_USER" \
|
||||
/data/egypt-latest.osm.pbf || true
|
||||
fi
|
||||
|
||||
if [ -s "${DATA_DIR}/iraq-latest.osm.pbf" ]; then
|
||||
echo "🚀 Importing Iraq OSM data (--append)..."
|
||||
docker compose --profile import run --rm osm-import \
|
||||
osm2pgsql --append --slim --cache 1000 \
|
||||
--database "$DB_NAME" --host db --user "$DB_USER" \
|
||||
/data/iraq-latest.osm.pbf || true
|
||||
fi
|
||||
|
||||
echo "📍 Applying exact straight Jordan-Syria border segment from user coordinates..."
|
||||
docker exec -i map-db psql -U "$DB_USER" -d "$DB_NAME" << 'EOF'
|
||||
-- Insert the official straight border line:
|
||||
-- Point A: (36.839237, 32.311852) -> Point B: (38.793024, 33.371104)
|
||||
DELETE FROM planet_osm_line WHERE name = 'Jordan - Syria Official Border';
|
||||
|
||||
INSERT INTO planet_osm_line (osm_id, boundary, admin_level, name, way)
|
||||
VALUES (
|
||||
-9999991,
|
||||
'administrative',
|
||||
'2',
|
||||
'Jordan - Syria Official Border',
|
||||
ST_Transform(
|
||||
ST_Segmentize(
|
||||
ST_GeomFromText('LINESTRING(36.839237 32.311852, 38.793024 33.371104)', 4326),
|
||||
1000
|
||||
),
|
||||
3857
|
||||
)
|
||||
);
|
||||
EOF
|
||||
|
||||
echo "🔄 Restarting Martin to refresh vector tiles..."
|
||||
docker compose restart martin
|
||||
|
||||
echo "================================================================="
|
||||
echo "✅ All OSM Roads restored and official border applied perfectly!"
|
||||
echo "================================================================="
|
||||
Reference in New Issue
Block a user