作者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/cn.aspx?n=bbs/GIS/M.1465626365.A.5A6.html