Skip to content

Instantly share code, notes, and snippets.

@smellman
Created February 11, 2020 03:52
Show Gist options
  • Select an option

  • Save smellman/711e89f513995bd2f7759c47a8e0d7d8 to your computer and use it in GitHub Desktop.

Select an option

Save smellman/711e89f513995bd2f7759c47a8e0d7d8 to your computer and use it in GitHub Desktop.
OpenMapTiles: Import OSM without quickstart.sh
#!/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