feat(db): add park_ride

This commit is contained in:
dancingCycle 2023-06-16 11:00:28 +02:00
parent 38b3e43173
commit 11787794a2
5 changed files with 55 additions and 20 deletions

View File

@ -16,17 +16,9 @@ echo "DB_USER: $DB_USER"
DB_SCHEMA="$3"
echo "DB_SCHEMA: ${DB_SCHEMA}"
#
psql -U $DB_USER -f ./sql/scripts/vw_counties.sql -d $DB_NAME -v schema=$DB_SCHEMA
#
psql -U $DB_USER -f ./sql/scripts/vw_municipalities.sql -d $DB_NAME -v schema=$DB_SCHEMA
#
psql -U $DB_USER -f ./sql/scripts/bus_stop.sql -d $DB_NAME -v schema=$DB_SCHEMA
#
psql -U $DB_USER -f ./sql/scripts/railway.sql -d $DB_NAME -v schema=$DB_SCHEMA
#
#psql -U $DB_USER -d $DB_NAME -f ./sql/scripts/vw_export_poi.sql -v schema=$DB_SCHEMA
#
#psql -U $DB_USER -d $DB_NAME -c "COPY (SELECT * FROM rvb.vw_export_poi) TO STDOUT WITH DELIMITER AS ';' CSV HEADER NULL '' QUOTE '\"';" -o /tmp/osm_poi_rvb.csv
#
echo "Done."
#done.

View File

@ -16,15 +16,7 @@ echo "DB_USER: $DB_USER"
DB_SCHEMA="$3"
echo "DB_SCHEMA: ${DB_SCHEMA}"
#
psql -U $DB_USER -f ./sql/scripts/vw_counties.sql -d $DB_NAME -v schema=$DB_SCHEMA
#
psql -U $DB_USER -f ./sql/scripts/vw_municipalities.sql -d $DB_NAME -v schema=$DB_SCHEMA
#
psql -U $DB_USER -f ./sql/scripts/bus_stop.sql -d $DB_NAME -v schema=$DB_SCHEMA
#
#psql -U $DB_USER -d $DB_NAME -f ./sql/scripts/vw_export_poi.sql -v schema=$DB_SCHEMA
#
#psql -U $DB_USER -d $DB_NAME -c "COPY (SELECT * FROM rvb.vw_export_poi) TO STDOUT WITH DELIMITER AS ';' CSV HEADER NULL '' QUOTE '\"';" -o /tmp/osm_poi_rvb.csv
#
echo "Done."
#done.

22
db/park-ride.sh Normal file
View File

@ -0,0 +1,22 @@
#!/bin/bash
#
echo "Started..."
#Started...
#
# special variable $# is the number of arguments
if [ $# -lt 3 ] ; then
echo 'Call ./<script> <db name> <db user> <db schema>'
exit 1
fi
#
DB_NAME="$1"
echo "DB_NAME: $DB_NAME"
DB_USER="$2"
echo "DB_USER: $DB_USER"
DB_SCHEMA="$3"
echo "DB_SCHEMA: ${DB_SCHEMA}"
#
psql -U $DB_USER -f ./sql/scripts/park-ride.sql -d $DB_NAME -v schema=$DB_SCHEMA
#
echo "Done."
#done.

View File

@ -16,10 +16,6 @@ echo "DB_USER: $DB_USER"
DB_SCHEMA="$3"
echo "DB_SCHEMA: ${DB_SCHEMA}"
#
psql -U $DB_USER -f ./sql/scripts/vw_counties.sql -d $DB_NAME -v schema=$DB_SCHEMA
#
psql -U $DB_USER -f ./sql/scripts/vw_municipalities.sql -d $DB_NAME -v schema=$DB_SCHEMA
#
psql -U $DB_USER -f ./sql/scripts/railway.sql -d $DB_NAME -v schema=$DB_SCHEMA
#
echo "Done."

View File

@ -0,0 +1,33 @@
-- colon before variable: for a prepared statement using named placeholders, this will be a parameter name of the form :name
CREATE SCHEMA IF NOT EXISTS :schema;
SET search_path to :schema, public;
DROP TABLE IF EXISTS :schema.tbl_railway;
DROP VIEW IF EXISTS :schema.vw_park_ride;
CREATE OR REPLACE VIEW IF NOT EXISTS :schema.vw_park_ride AS
SELECT entity.osm_id, entity.park_ride, entity.name, entity.st_x, entity.st_y
FROM (
--planet_osm_point/node
SELECT osmNode.osm_id, osmNode.park_ride, osmNode.name, st_x(st_transform(osmNode.way, 4326)) AS st_x, st_y(st_transform(osmNode.way, 4326)) AS st_y
FROM planet_osm_point AS osmNode
WHERE
(osmNode.park_ride IS NULL OR osmNode.park_ride NOT LIKE 'no')
AND osmNode.proposed IS NULL
UNION
--planet_osm_polygone/way
SELECT osmWay.osm_id, osmWay.park_ride, osmWay.name, st_x(st_centroid(st_transform(osmWay.way, 4326))) AS st_x, st_y(st_centroid(st_transform(osmWay.way, 4326))) AS st_y
FROM planet_osm_polygon AS osmWay
WHERE
(osmWay.park_ride IS NULL OR osmWay.park_ride NOT LIKE 'no')
AND osmWay.proposed IS NULL
) AS entity
--consider coordinates inside rvb only
LEFT JOIN vw_counties vwc ON st_contains(vwc.way, st_transform(st_geomfromtext('POINT(' || entity.st_x || ' ' || entity.st_y ||')',4326),3857))
--consider coordinates inside rvb only
LEFT JOIN vw_municipalities vwm ON st_contains(vwm.way, st_transform(st_geomfromtext('POINT(' || entity.st_x || ' ' || entity.st_y ||')',4326),3857))
--consider counties of rvb only
WHERE (vwc.name = ANY (ARRAY['Braunschweig','Salzgitter','Wolfsburg','Gifhorn','Landkreis Goslar','Landkreis Helmstedt','Landkreis Peine','Landkreis Wolfenbüttel']))
ORDER BY vwc.name, vwm.name, entity.name;
CREATE TABLE IF NOT EXISTS :schema.tbl_park_ride AS SELECT * FROM :schema.vw_park_ride;