Created
February 11, 2020 03:52
-
-
Save smellman/711e89f513995bd2f7759c47a8e0d7d8 to your computer and use it in GitHub Desktop.
OpenMapTiles: Import OSM without quickstart.sh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| set -o errexit | |
| set -o pipefail | |
| set -o nounset | |
| if [ $# -eq 0 ]; then | |
| echo "you need to set version" | |
| echo "example: $0 3.9" | |
| exit 1 | |
| else | |
| tag=$1 | |
| fi | |
| BASE_DIR=/usr/local/apps/openmaptiles/openmaptiles-$tag | |
| if [ ! -d $BASE_DIR ]; then | |
| echo "You need to setup openmaptiles before run this script" | |
| exit 1 | |
| fi | |
| DOCKER_COMPOSE_YML=$BASE_DIR/docker-compose-custom.yml | |
| if [ ! -f $DOCKER_COMPOSE_YML ]; then | |
| echo "You need to setup OSMFJ tile server system before run this script" | |
| exit 1 | |
| fi | |
| CHECK_DATA=`find $BASE_DIR/data -name '*.pbf' -print` | |
| if [ "$CHECK_DATA" = '' ]; then | |
| echo "You need to download pbf" | |
| exit 1 | |
| fi | |
| cd $BASE_DIR | |
| STARTTIME=$(date +%s) | |
| echo "start postgres" | |
| /usr/local/bin/docker-compose -f $DOCKER_COMPOSE_YML up -d postgres | |
| echo "Wait for PostgreSQL to start..." | |
| /usr/local/bin/docker-compose -f $DOCKER_COMPOSE_YML run --rm import-osm ./pgwait.sh | |
| echo "install generate-tm2source" | |
| rm -f build/openmaptiles.tm2source/data.yml && rm -f build/mapping.yaml && rm -f build/tileset.sql | |
| /usr/local/bin/docker-compose -f $DOCKER_COMPOSE_YML run --rm openmaptiles-tools generate-tm2source openmaptiles.yaml --host="postgres" --port=5432 --database="openmaptiles" --user="openmaptiles" --password="openmaptiles" > build/openmaptiles.tm2source/data.yml | |
| /usr/local/bin/docker-compose -f $DOCKER_COMPOSE_YML run --rm openmaptiles-tools generate-imposm3 openmaptiles.yaml > build/mapping.yaml | |
| /usr/local/bin/docker-compose -f $DOCKER_COMPOSE_YML run --rm openmaptiles-tools generate-sql openmaptiles.yaml > build/tileset.sql | |
| echo "force clean sql" | |
| /usr/local/bin/docker-compose -f $DOCKER_COMPOSE_YML run --rm import-osm ./psql.sh -c "DROP SCHEMA IF EXISTS public CASCADE ; CREATE SCHEMA IF NOT EXISTS public; " | |
| /usr/local/bin/docker-compose -f $DOCKER_COMPOSE_YML run --rm import-osm ./psql.sh -c "CREATE EXTENSION hstore; CREATE EXTENSION postgis; CREATE EXTENSION unaccent; CREATE EXTENSION fuzzystrmatch; CREATE EXTENSION osml10n; CREATE EXTENSION pg_stat_statements;" | |
| /usr/local/bin/docker-compose -f $DOCKER_COMPOSE_YML run --rm import-osm ./psql.sh -c "GRANT ALL ON SCHEMA public TO public;COMMENT ON SCHEMA public IS 'standard public schema';" | |
| echo "import data" | |
| /usr/local/bin/docker-compose -f $DOCKER_COMPOSE_YML run --rm import-water | |
| /usr/local/bin/docker-compose -f $DOCKER_COMPOSE_YML run --rm import-natural-earth | |
| /usr/local/bin/docker-compose -f $DOCKER_COMPOSE_YML run --rm import-lakelines | |
| echo "import osm" | |
| /usr/local/bin/docker-compose -f $DOCKER_COMPOSE_YML run --rm import-osm | |
| /usr/local/bin/docker-compose -f $DOCKER_COMPOSE_YML run --rm openmaptiles-tools import-borders | |
| echo "import-sql" | |
| /usr/local/bin/docker-compose -f $DOCKER_COMPOSE_YML run --rm openmaptiles-tools import-sql | \ | |
| awk -v s=": WARNING:" '$0~s{print; print "\n*** WARNING detected, aborting"; exit(1)} 1' | |
| /usr/local/bin/docker-compose -f $DOCKER_COMPOSE_YML run --rm import-osm /usr/src/app/psql.sh -P pager=off -c 'ANALYZE VERBOSE;' | |
| echo "import wikidata" | |
| /usr/local/bin/docker-compose -f $DOCKER_COMPOSE_YML run --rm openmaptiles-tools import-wikidata openmaptiles.yaml | |
| ENDTIME=$(date +%s) | |
| echo "All import is finished" | |
| echo "It takes $(($ENDTIME - $STARTTIME)) seconds to complete" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment