2016-11-11 16:28:37 +00:00
|
|
|
#!/bin/bash
|
|
|
|
set -o errexit
|
|
|
|
set -o pipefail
|
|
|
|
set -o nounset
|
|
|
|
|
2016-11-15 22:02:28 +00:00
|
|
|
##
|
2016-11-16 00:45:44 +00:00
|
|
|
## OpenMapTiles quickstart.sh for x86_64 linux
|
2016-11-15 22:02:28 +00:00
|
|
|
##
|
|
|
|
|
|
|
|
STARTTIME=$(date +%s)
|
|
|
|
STARTDATE=$(date -Iminutes)
|
|
|
|
githash=$( git rev-parse HEAD )
|
|
|
|
|
|
|
|
log_file=quickstart.log
|
|
|
|
rm -f $log_file
|
|
|
|
exec &> >(tee -a "$log_file")
|
|
|
|
|
2016-11-16 00:45:44 +00:00
|
|
|
echo " "
|
2016-11-15 22:02:28 +00:00
|
|
|
echo "====> : OpenMapTiles quickstart! [ https://github.com/openmaptiles/openmaptiles ] "
|
2016-11-15 22:54:53 +00:00
|
|
|
echo " : This will be logged to the $log_file file ( for debugging ) and to the screen"
|
2016-11-16 00:45:44 +00:00
|
|
|
echo " : Git version: $githash / Started: $STARTDATE "
|
|
|
|
echo " : Your bash version: $BASH_VERSION"
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " : Your system is:"
|
|
|
|
lsb_release -a
|
|
|
|
|
2016-11-16 00:45:44 +00:00
|
|
|
echo " "
|
|
|
|
echo " : This is working on x86_64 ; Your kernel is:"
|
|
|
|
uname -a
|
|
|
|
|
|
|
|
echo " "
|
2016-11-15 22:02:28 +00:00
|
|
|
echo "====> : Please check the docker and docker-compose version!"
|
2016-11-15 22:54:53 +00:00
|
|
|
echo " : We are using docker-compose V2 file format ! see more: https://docs.docker.com/"
|
|
|
|
echo " : (theoretically;not tested) minumum Docker version is 1.10.0+."
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " : (theoretically;not tested) minimum Docker-compose version is 1.6.0+."
|
|
|
|
echo " : See the .travis testfile for the current supported versions "
|
|
|
|
echo " : Your docker systems is:"
|
|
|
|
docker --version
|
2016-11-11 16:28:37 +00:00
|
|
|
docker-compose --version
|
|
|
|
|
2016-11-16 00:45:44 +00:00
|
|
|
echo " "
|
2016-11-15 22:02:28 +00:00
|
|
|
echo "====> : Checking OpenMapTiles docker images "
|
|
|
|
docker images | grep openmaptiles
|
|
|
|
|
2016-11-16 00:45:44 +00:00
|
|
|
echo " "
|
2016-11-15 22:54:53 +00:00
|
|
|
echo "====> : Stopping running services & removing old containers "
|
2016-11-11 16:28:37 +00:00
|
|
|
docker-compose down
|
|
|
|
docker-compose rm -fv
|
2016-11-15 22:02:28 +00:00
|
|
|
|
2016-11-16 00:45:44 +00:00
|
|
|
echo " "
|
2016-11-15 22:54:53 +00:00
|
|
|
echo "====> : For a clean start, we are removing old postgresql data volume ( if it exists )"
|
2016-11-11 16:28:37 +00:00
|
|
|
docker volume ls -q | grep openmaptiles | xargs -r docker volume rm || true
|
|
|
|
|
2016-11-16 00:45:44 +00:00
|
|
|
echo " "
|
2016-11-15 22:54:53 +00:00
|
|
|
echo "====> : Making directories - if they don't exist ( ./build ./data ) "
|
2016-11-11 16:28:37 +00:00
|
|
|
mkdir -p build
|
|
|
|
mkdir -p data
|
|
|
|
|
2016-11-16 00:45:44 +00:00
|
|
|
echo " "
|
2016-11-15 22:02:28 +00:00
|
|
|
echo "====> : Removing old MBTILES if exists ( ./data/*.mbtiles ) "
|
|
|
|
rm -f ./data/*.mbtiles
|
|
|
|
|
2016-11-11 16:28:37 +00:00
|
|
|
testdata=zurich_switzerland.osm.pbf
|
2016-11-15 22:02:28 +00:00
|
|
|
testdataurl=https://s3.amazonaws.com/metro-extracts.mapzen.com/$testdata
|
2016-11-11 16:28:37 +00:00
|
|
|
if [ ! -f ./data/${testdata} ]; then
|
2016-11-15 22:54:53 +00:00
|
|
|
echo "====> : Downloading testdata $testdata "
|
2016-11-11 16:28:37 +00:00
|
|
|
rm -f ./data/*
|
2016-11-15 22:02:28 +00:00
|
|
|
wget $testdataurl -P ./data
|
|
|
|
else
|
2016-11-15 22:54:53 +00:00
|
|
|
echo "====> : The testdata ./data/$testdata exists, we don't need to download! "
|
2016-11-11 16:28:37 +00:00
|
|
|
fi
|
|
|
|
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " "
|
2016-11-15 22:54:53 +00:00
|
|
|
echo "====> : Remove old generated source files ( ./build/* ) ( if they exist ) "
|
2016-11-15 22:02:28 +00:00
|
|
|
docker run --rm -v $(pwd):/tileset openmaptiles/openmaptiles-tools make clean_build
|
2016-11-11 16:28:37 +00:00
|
|
|
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " "
|
|
|
|
echo "====> : Code generating from the layer definitions ( ./build/mapping.yaml; ./build/tileset.sql )"
|
2016-11-15 22:54:53 +00:00
|
|
|
echo " : The tool source code: https://github.com/openmaptiles/openmaptiles-tools "
|
|
|
|
echo " : But we generate the tm2source, Imposm mappings and SQL functions from the layer definitions! "
|
2016-11-11 16:28:37 +00:00
|
|
|
docker run --rm -v $(pwd):/tileset openmaptiles/openmaptiles-tools make
|
2016-11-15 22:02:28 +00:00
|
|
|
|
|
|
|
echo " "
|
|
|
|
echo "====> : Start PostgreSQL service ; create PostgreSQL data volume "
|
2016-11-15 22:54:53 +00:00
|
|
|
echo " : Source code: https://github.com/openmaptiles/postgis "
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " : Thank you: https://www.postgresql.org ! Thank you http://postgis.org !"
|
2016-11-11 16:28:37 +00:00
|
|
|
docker-compose up -d postgres
|
|
|
|
sleep 30
|
|
|
|
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " "
|
2016-11-15 22:54:53 +00:00
|
|
|
echo "====> : Start importing water data from http://openstreetmapdata.com into PostgreSQL "
|
|
|
|
echo " : Source code: https://github.com/openmaptiles/import-water "
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " : Data license: http://openstreetmapdata.com/info/license "
|
|
|
|
echo " : Thank you: http://openstreetmapdata.com/info/supporting "
|
2016-11-11 16:28:37 +00:00
|
|
|
docker-compose run --rm import-water
|
2016-11-15 22:02:28 +00:00
|
|
|
|
|
|
|
echo " "
|
|
|
|
echo "====> : Start importing http://www.naturalearthdata.com into PostgreSQL "
|
2016-11-15 22:54:53 +00:00
|
|
|
echo " : Source code: https://github.com/openmaptiles/import-natural-earth "
|
|
|
|
echo " : Terms-of-use: http://www.naturalearthdata.com/about/terms-of-use "
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " : Thank you: Natural Earth Contributors! "
|
2016-11-11 16:28:37 +00:00
|
|
|
docker-compose run --rm import-natural-earth
|
2016-11-15 22:02:28 +00:00
|
|
|
|
|
|
|
echo " "
|
|
|
|
echo "====> : Start importing OpenStreetMap Lakelines data "
|
|
|
|
echo " : Source code: https://github.com/openmaptiles/import-lakelines "
|
|
|
|
echo " : https://github.com/lukasmartinelli/osm-lakelines "
|
|
|
|
echo " : Data license: .. "
|
2016-11-11 16:28:37 +00:00
|
|
|
docker-compose run --rm import-lakelines
|
2016-11-15 22:02:28 +00:00
|
|
|
|
|
|
|
echo " "
|
|
|
|
echo "====> : Start importing OpenStreetMap data: ./data/${testdata} -> imposm3[./build/mapping.yaml] -> PostgreSQL"
|
|
|
|
echo " : Imposm3 documentation: https://imposm.org/docs/imposm3/latest/index.html "
|
|
|
|
echo " : Thank you Omniscale! "
|
2016-11-16 00:45:44 +00:00
|
|
|
echo " : Source code: https://github.com/openmaptiles/import-osm "
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " : The OpenstreetMap data license: https://www.openstreetmap.org/copyright (ODBL) "
|
|
|
|
echo " : Thank you OpenStreetMap Contributors ! "
|
2016-11-11 16:28:37 +00:00
|
|
|
docker-compose run --rm import-osm
|
2016-11-15 22:02:28 +00:00
|
|
|
|
|
|
|
echo " "
|
|
|
|
echo "====> : Start SQL postprocessing: ./build/tileset.sql -> PostgreSQL "
|
2016-11-15 22:54:53 +00:00
|
|
|
echo " : Source code: https://github.com/openmaptiles/import-sql "
|
2016-11-11 16:28:37 +00:00
|
|
|
docker-compose run --rm import-sql
|
|
|
|
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " "
|
|
|
|
echo "====> : Start generating MBTiles (containing gzipped MVT PBF) from a TM2Source project. "
|
|
|
|
echo " : TM2Source project definitions : ./build/openmaptiles.tm2source/data.yml "
|
2016-11-15 22:54:53 +00:00
|
|
|
echo " : Output MBTiles: ./data/tiles.mbtiles "
|
|
|
|
echo " : Source code: https://github.com/openmaptiles/generate-vectortiles "
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " : We are using a lot of Mapbox Open Source tools! : https://github.com/mapbox "
|
|
|
|
echo " : Thank you https://www.mapbox.com !"
|
|
|
|
echo " : See other MVT tools : https://github.com/mapbox/awesome-vector-tiles "
|
2016-11-11 16:28:37 +00:00
|
|
|
docker-compose -f docker-compose.yml -f docker-compose-test-override.yml run --rm generate-vectortiles
|
|
|
|
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " "
|
|
|
|
echo "====> : Stop PostgreSQL service ( but we keep PostgreSQL data volume for debugging )"
|
2016-11-11 16:28:37 +00:00
|
|
|
docker-compose stop postgres
|
2016-11-15 22:02:28 +00:00
|
|
|
|
|
|
|
ENDTIME=$(date +%s)
|
|
|
|
ENDDATE=$(date -Iminutes)
|
|
|
|
MODDATE=$(stat -c %y ./data/${testdata} )
|
|
|
|
|
|
|
|
echo " "
|
|
|
|
echo " "
|
|
|
|
echo "------------------------------------------------------------"
|
|
|
|
echo "-- Summary --"
|
|
|
|
echo "------------------------------------------------------------"
|
|
|
|
echo " "
|
2016-11-16 00:54:27 +00:00
|
|
|
echo "====> : Inputs - Outputs md5sum for debugging "
|
|
|
|
rm -f quickstart_checklist.chk
|
|
|
|
md5sum build/mapping.yaml >> quickstart_checklist.chk
|
|
|
|
md5sum build/tileset.sql >> quickstart_checklist.chk
|
|
|
|
md5sum build/testmaptiles.tm2source/data.yml >> quickstart_checklist.chk
|
|
|
|
md5sum ./data/${testdata} >> quickstart_checklist.chk
|
|
|
|
md5sum ./data/tiles.mbtiles >> quickstart_checklist.chk
|
|
|
|
cat quickstart_checklist.chk
|
|
|
|
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " "
|
|
|
|
echo "====> : (disk space) We have created a lot of docker images: "
|
2016-11-15 22:54:53 +00:00
|
|
|
echo " : Hint: you can remove with: docker rmi IMAGE "
|
2016-11-15 22:02:28 +00:00
|
|
|
docker images | grep openmaptiles
|
|
|
|
|
|
|
|
echo " "
|
2016-11-15 22:54:53 +00:00
|
|
|
echo "====> : (disk space) We have created this new docker volume for PostgreSQL data:"
|
|
|
|
echo " : Hint: you can remove with : docker volume rm openmaptiles_pgdata "
|
2016-11-15 22:02:28 +00:00
|
|
|
docker volume ls -q | grep openmaptiles
|
|
|
|
|
|
|
|
echo " "
|
|
|
|
echo "====> : (disk space) We have created the new vectortiles ( ./data/tiles.mbtiles ) "
|
|
|
|
echo " : The OpenMapTiles MBTILES license: ..... "
|
|
|
|
echo " : We created from $testdata ( file moddate: $MODDATE ) "
|
|
|
|
echo " : Size: "
|
2016-11-11 16:28:37 +00:00
|
|
|
ls ./data/*.mbtiles -la
|
2016-11-15 22:02:28 +00:00
|
|
|
|
|
|
|
echo " "
|
|
|
|
echo "============================================================"
|
|
|
|
echo "The quickstart.sh is finished! "
|
|
|
|
echo "It takes $(($ENDTIME - $STARTTIME)) seconds to complete"
|
2016-11-16 00:54:27 +00:00
|
|
|
echo "We saved the log file to $log_file ( for debugging ) you can compare with the travis log !"
|
2016-11-15 22:02:28 +00:00
|
|
|
echo " "
|
2016-11-15 22:54:53 +00:00
|
|
|
echo "Start experimenting -> see the documentation! "
|
2016-11-15 22:02:28 +00:00
|
|
|
echo "============================================================"
|
2016-11-11 16:28:37 +00:00
|
|
|
|
|
|
|
|
|
|
|
|