- linux/shell commands used
- to process data downloaded from https://www.hydrosheds.org/
- clipping it to a rectangle around India to reduce to India data
- converting to .geojsonl
- creating .mbtiles using tippecanoe
- publishing on an TileServerGL instance
ogr2ogr -f "GeoJSONSeq" /vsistdout/ GloRiC_v10_shapefile/GloRiC_v10.shp -clipsrc 67.104 5.195 98.357 37.952 >> GloRiC_v10_India.geojsonl
ogr2ogr -f "GeoJSONSeq" /vsistdout/ HydroLAKES_polys_v10_shp/HydroLAKES_polys_v10.shp -clipsrc 67.104 5.195 98.357 37.952 >> HydroLAKES_polys_v10_India.geojsonl
ogr2ogr -f "GeoJSONSeq" /vsistdout/ HydroRIVERS_v10_as_shp/HydroRIVERS_v10_as.shp -clipsrc 67.104 5.195 98.357 37.952 >> HydroRIVERS_v10_India.geojsonl
ogr2ogr -f "GeoJSONSeq" /vsistdout/ HydroLAKES_points_v10_shp/HydroLAKES_points_v10.shp -clipsrc 67.104 5.195 98.357 37.952 >> HydroLAKES_points_v10_India.geojsonl
ogr2ogr -f "GeoJSONSeq" /vsistdout/ HydroBASINS/hybas_as_lev08_v1c.shp -clipsrc 67.104 5.195 98.357 37.952 >> hybas_as_lev08_v1c.geojsonl
ogr2ogr -f "GeoJSONSeq" /vsistdout/ HydroBASINS/hybas_as_lev12_v1c.shp -clipsrc 67.104 5.195 98.357 37.952 >> hybas_as_lev12_v1c.geojsonl
nohup tippecanoe -o ~/building_footprints/mbtiles2/GloRiC_v10_India_z16.mbtiles -f \
-n "GloRiC_v10" -l "GloRiC_v10" \
-N "https://www.hydrosheds.org/products/gloric#downloads GloRiC_v10_shapefile.zip converted to .geojsonl and clipped to India region using ogr2ogr then converted to .mbtiles using tippecanoe by https://github.com/answerquest, all credits to original data authors" \
-z16 --drop-densest-as-needed --drop-smallest-as-needed --extend-zooms-if-still-dropping --read-parallel \
GloRiC_v10_India.geojsonl &
nohup tippecanoe -o ~/building_footprints/mbtiles2/HydroRIVERS_v10_India.mbtiles -f \
-n "HydroRIVERS_v10_India" -l "HydroRIVERS_v10_India" \
-N "https://www.hydrosheds.org/products/hydrorivers HydroRIVERS_v10_as_shp.zip converted to .geojsonl and clipped to India region using ogr2ogr then converted to .mbtiles using tippecanoe by https://github.com/answerquest, all credits to original data authors" \
-z16 --drop-densest-as-needed --drop-smallest-as-needed --extend-zooms-if-still-dropping --read-parallel \
HydroRIVERS_v10_India.geojsonl &
nohup tippecanoe -o ~/building_footprints/mbtiles2/HydroLAKES_polys_v10_India.mbtiles -f \
-n "HydroLAKES_polys_v10_India" -l "HydroLAKES_polys_v10_India" \
-N "https://www.hydrosheds.org/products/hydrolakes HydroLAKES_polys_v10_shp.zip converted to .geojsonl and clipped to India region using ogr2ogr then converted to .mbtiles using tippecanoe by https://github.com/answerquest, all credits to original data authors" \
-z16 --drop-densest-as-needed --drop-smallest-as-needed --extend-zooms-if-still-dropping --read-parallel \
HydroLAKES_polys_v10_India.geojsonl &
nohup tippecanoe -o ~/building_footprints/mbtiles2/HydroLAKES_points_v10_India.mbtiles -f \
-n "HydroLAKES_points_v10_India" -l "HydroLAKES_points_v10_India" \
-N "https://www.hydrosheds.org/products/hydrolakes HydroLAKES_points_v10_shp.zip converted to .geojsonl and clipped to India region using ogr2ogr then converted to .mbtiles using tippecanoe by https://github.com/answerquest, all credits to original data authors" \
-z16 --drop-densest-as-needed --drop-smallest-as-needed --extend-zooms-if-still-dropping --read-parallel \
HydroLAKES_points_v10_India.geojsonl &
nohup tippecanoe -o ~/building_footprints/mbtiles2/hybas_as_lev08_v1c.mbtiles -f \
-n "hybas_as_lev08_v1c" -l "hybas_as_lev08_v1c" \
-N "https://www.hydrosheds.org/products/hydrobasins Asia download converted to .mbtiles using tippecanoe by https://github.com/answerquest, all credits to original data authors" \
-z16 --coalesce-densest-as-needed --drop-densest-as-needed --extend-zooms-if-still-dropping --read-parallel \
"hybas_as_lev08_v1c.geojsonl" &
nohup tippecanoe -o ~/building_footprints/mbtiles2/hybas_as_lev12_v1c.mbtiles -f \
-n "hybas_as_lev12_v1c" -l "hybas_as_lev12_v1c" \
-N "https://www.hydrosheds.org/products/hydrobasins Asia download converted to .mbtiles using tippecanoe by https://github.com/answerquest, all credits to original data authors" \
-z16 --coalesce-densest-as-needed --drop-densest-as-needed --extend-zooms-if-still-dropping --read-parallel \
"hybas_as_lev12_v1c.geojsonl" &
note: these commands were run on a linux (ubuntu) VPS webserver hosted at SSDNodes thru SSH connection. The "nohup" prefix and "&" suffix makes the command run in background and it doesn't terminate if the user gets disconnected from the server.
- note: showing a reduced part of a larger config
config.json:
"options": {
"paths": {
"root": "",
"fonts": "",
"sprites": "",
"styles": "",
"mbtiles": "/data"
}
},
"data": {
"hydrosheds.org-GloRiC_v10_India": {
"mbtiles": "GloRiC_v10_India_z16.mbtiles"
},
"hydrosheds.org-HydroLAKES_polys_v10_India": {
"mbtiles": "HydroLAKES_polys_v10_India.mbtiles"
},
"hydrosheds.org-HydroLAKES_points_v10_India": {
"mbtiles": "HydroLAKES_points_v10_India.mbtiles"
},
"hydrosheds.org-HydroRIVERS_v10_India": {
"mbtiles": "HydroRIVERS_v10_India.mbtiles"
},
"hydrosheds.org-HydroBASINS_lev08_India": {
"mbtiles": "hybas_as_lev08_v1c.mbtiles"
},
"hydrosheds.org-HydroBASINS_lev12_India": {
"mbtiles": "hybas_as_lev12_v1c.mbtiles"
}
}
}
- Place config.json and the .mbtiles files in the same folder, and run this docker command:
docker run --name tileserver1 -d -v "$(pwd)":/data -p 7100:8080 -p 7101:80 maptiler/tileserver-gl -c config.json -b 0.0.0.0 -u "https://server.nikhilvj.co.in/tileserver/"
-
Omit the last "-u " part if you're doing this on a local system only
-
On local system, open http://localhost:7100 in browser.
-
If doing on a web-facing server, then in apache conf file, add proxy & reverse proxy linking port 7100 to the site path.
-
My setting:
ProxyPass /tileserver/ http://127.0.0.1:7100/
ProxyPassReverse /tileserver/ http://127.0.0.1:7100/
- Won't go into nitty gritties of setting up apache server here, pls look up online; DigitalOcean has good guides