作者rextsai (Rex Tsai)
看板GIS
標題[心得] 使用 Docker 玩轉開放街圖
時間Sat Jun 11 14:25:24 2016
網頁板: 使用 Docker 玩轉開放街圖 -
http://goo.gl/McXjt7
去年在 [OpenStreetMap Taiwan Webinar][1] 的題目
[「自己的圖磚自己刻」][2]之後,注意到其實從頭到尾創建一個圖磚伺服器,
要安裝、設定的軟體相當多,要[設定資料庫、匯入海岸線 Shp、安裝 mapnik
相關的軟體、寫好 style sheet 等][3]。為了簡化所有的程序,方便入門
2015 年已經先[以 Docker 建立初版圖磚伺服器][4],這個伺服器將資料庫建立
、匯入、軟體安裝等等合而為一,入門開發者只要三十分鐘內就可以配置好一
個伺服器開始嘗試開發。就算不是 Linux 的開發者,也可以透過
[Docker Machine][5] 或其他虛擬機方式設定 docker 開發環境。
不過由於當初把所有的軟體擺在同一個映象檔 (docker image) 中,導致不容易
抽出再做延伸的利用開發。 從「自己的圖磚自己刻」講者吳政璋 (小璋丸)的
[筆記][6]中,可以初步理解要完成一個圖磚 (slippy map) 伺服器所需要的
軟體堆疊 (Software stack) 大概可分為編輯後的原始資料、後台資料庫、繪圖
輸出 (rendering) 以及前端視覺。
http://wiki.openstreetmap.org/w/images/1/15/OSM_Components.png
最近嘗試進一步的改善 Docker images 的實踐方式,將每個軟體元件拆分成獨立的
image,以便互相疊加應用。由於 Open Source geospatial software 的發展迅速
,迭代頻繁,在過渡時期,偶爾會發現新版的函式庫的 Python binding 已經故障,
反而是 node.js 的延伸開發迅速,反之新的技術實踐無法搭配舊伺服器使用。
透過 Docker 技術可以很快的「解決」這些軟體版本的相依問題,直接搭配正確的
Linux Distro 版本使用,方便一個軟體服務同時使用新舊科技。希望可以陸續把
[Linux 上][10] 上常用 [Open Source geospatial software][9] 也整理出來,方
便進階開發者使用。
目前已經完成 [PostGIS][14], osm2pgsql, mapnik, mod_tile, tilestache, gdal
以及幾個常見的 featured tiles. Docker images 都已經發布到 Docker Hub 上的
[OpenStreetMap Taiwan 群組][7]中,原始碼發布於 [Github Group][8]中,
歡迎試用。
文中分享一些入門的實踐典範,可以供一般 GIS 從業人員或軟體開發者簡便利
用開放街圖資料。
[1]:
https://osmtw.hackpad.com/Webinar-議題-7CeqMWj48AG "Webinar 議題 - osmtw.hackpad.com"
[2]:
https://www.youtube.com/watch?v=Dk9BinTghDw "OpenStreetMap Taiwan Webinar - 自己的圖磚自己刻 - YouTube"
[3]:
https://drive.google.com/file/d/0B8yzK2GdMzgqZlByeVF1ZUplMjg/view "自己的圖磚自己刻.pdf - Google Drive"
[4]:
https://osmtw.hackpad.com/自己的圖磚自己刻-docker-大法-2y0btHcBwhI "自己的圖磚自己刻 docker 大法"
[5]:
https://docs.docker.com/machine/ "Docker Machine"
[6]:
http://wiki.openstreetmap.org/wiki/Zh-hant:Develop "Zh-hant:Develop - OpenStreetMap Wiki"
[7]:
https://hub.docker.com/u/osmtw/ "OSM Taiwan docker images"
[8]:
https://github.com/OsmHackTW?utf8=✓&query=docker "OpenStreetMap Hacks in Taiwan"
[9]:
http://www.osgeo.org/ "OSGeo.org | Your Open Source Compass"
[10]:
https://wiki.debian.org/DebianGis "DebianGis - Debian Wiki"
[11]:
https://hub.docker.com/r/osmtw/osm2pgsql/ "osm2pgsql usage"
[12]:
http://www.qgis.org/en/site/ "Welcome to the QGIS project!"
[13]:
http://wiki.openstreetmap.org/wiki/Mapnik "Mapnik - OpenStreetMap Wiki"
[14]:
http://postgis.net/ "PostGIS — Spatial and Geographic Objects for PostgreSQL"
[15]:
http://wiki.openstreetmap.org/wiki/Mapnik_Example "Mapnik Example - OpenStreetMap Wiki"
[16]:
https://www.mapbox.com/tilemill/docs/manual/carto/ "CartoCSS | Mapbox"
[17]:
https://github.com/mapbox/osm-bright "mapbox/osm-bright: A Carto template for OpenStreetMap data"
[18]:
https://github.com/OsmHackTW/osm-tiles-docker "OsmHackTW/osm-tiles-docker: OSM styles tiles"
[19]:
https://docs.docker.com/compose/ "Docker Compose"
[20]:
http://wiki.openstreetmap.org/wiki/Slippy_Map "Slippy Map - OpenStreetMap Wiki"
[21]:
https://github.com/OsmHackTW/osm-tiles-docker "OsmHackTW/osm-tiles-docker: OSM styles tiles"
[22]:
http://leafletjs.com/ "Leaflet - a JavaScript library for interactive maps"
[23]:
http://tilestache.org/ "TileStache"
[24]:
https://github.com/OsmHackTW/gdtile-docker "OsmHackTW/gdtile-docker: docker for 鬼島圖磚"
[25]:
https://github.com/OsmHackTW/gdtile "OsmHackTW/gdtile: 鬼島圖磚服務"
[26]:
https://github.com/OsmHackTW/gdal-docker "OsmHackTW/gdal-docker"
[27]:
https://mapzen.com/projects/vector-tiles/ "Vector Tile Service · Mapzen"
[28]:
https://www.mapbox.com/vector-tiles/ "Vector Tiles | Mapbox"
[29]:
http://geojson.org/ "GeoJSON"
[30]:
https://github.com/mbostock/topojson/wiki "topojson"
[31]:
https://github.com/mapbox/vector-tile-spec "Mapbox Vector Tile specification"
[32]:
https://github.com/OsmHackTW/drinking-vector-tile-docker "飲水地圖 vector tile server "
[33]:
https://github.com/glenrobertson/leaflet-tilelayer-geojson "Leaflet TileLayer for GeoJSON tiles "
[34]:
http://drinking.teia.tw/ "飲水地圖"
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.0.222
※ 文章網址: https://webptt.com/m.aspx?n=bbs/GIS/M.1465626365.A.5A6.html