簡介
本文目的
- 做個簡單的工作記錄
基礎
TileStache是什麼
TileStache時基於Python編寫,它和TileCache(WMS服務器)很相似。
TileStache的功能
翻譯的可能不是很準確,湊合的理解把,具體以官網爲準。
- 可以渲染Mapnik地圖。
- 可以訪問預先渲染的MBTiles切片。
- 支持GeoJson。
- 緩存支持disk,Memcache,Amazon S3,MBTiles,Redis等。
- 支持mod_python模塊,可以提高訪問切片的速度。
- 使用metaTiles
TileStache安裝
安裝過程主要參考GitHub地址:傳送門
依賴
- Required:
ModestMaps: http://modestmaps.com, http://github.com/migurski/modestmaps-py
Python Imaging Library (Pillow): https://python-pillow.org - Optional:
Simplejson: https://github.com/simplejson/simplejson (optional if using >= python 2.6)
mapnik: http://mapnik.org (optional)(這塊我用到了這個,如果不會安裝請參考我之前的文章)
werkzeug: http://werkzeug.pocoo.org/ (optional)
mapbox-vector-tile: https://github.com/tilezen/mapbox-vector-tile (optional if using TileStache.Goodies.VecTiles:Provider)
Install the pure python modules with pip:
sudo pip install -U pillow modestmaps simplejson werkzeug uuid mapbox-vector-tile
Install pip (http://www.pip-installer.org/) like:
curl -O -L https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
Install Mapnik via instructions at:
http://mapnik.org/pages/downloads.html
安裝
下載:
- 直接從官網下載:傳送門
- 也可以從GitHub官網克隆代碼
git clone https://github.com/TileStache/TileStache.git
安裝:
sudo python setup.py install
TileStache配置
這塊我是用Mapnik數據源,所以配置需要配置Mapnik的xml文件,TileStache的cfg文件,以及TileStache啓動的python腳本文件
-
Mapnik的xml配置參考官方幫助
<Map srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs" background-color="#00000000"> <Layer name="gis_osm_buildings_a_free_1" status="on" srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs"> <StyleName>gis_osm_buildings_a_free_1</StyleName> <Datasource> <Parameter name="table">(select gid,geom from gis_osm_buildings_a_free_1) as gis_osm_buildings_a_free_1</Parameter> <Parameter name="type">postgis</Parameter> <Parameter name="host">192.168.80.49</Parameter> <Parameter name="port">5432</Parameter> <Parameter name="user">postgres</Parameter> <Parameter name="password">postgres</Parameter> <Parameter name="dbname">osm</Parameter> </Datasource> </Layer> <Style name="gis_osm_buildings_a_free_1"> <Rule> <PolygonSymbolizer fill="#CD69C9"/> <LineSymbolizer stroke-width="1" stroke="#ADFF2F"/> </Rule> </Style> </Map>
-
TileStache的cfg文件,主要參考TileStache的幫助文檔和API文檔,下面時一個簡單的示例
{ "cache": { "name": "Test", "verbose": true }, "layers": { "osm": { "provider": { "name": "proxy", "provider": "OPENSTREETMAP" }, "png options": { "palette": "http://tilestache.org/example-palette-openstreetmap-mapnik.act" } }, "building": { "provider": { "name": "mapnik", "mapfile": "examples/test/building.xml" }, "projection": "spherical mercator", "preview": { "lat": 39.9209, "lon": 116.3900, "zoom": 14, "ext": "png" } } }, "logging": "debug" }
3.TileStache的啓動腳本的配置(位於scripts文件夾下的tilestache-server.py)
TileStache啓動
輸入如下的命令啓動python腳本,然後你就可以訪問http://192.168.90.110:8082/building/preview.html
訪問查看效果。
python ./scripts/tilestache-server.py
效果圖如下:
小結:
- TileStache這塊提供的是xyz服務(類似谷歌切片),本來以爲是提供的WMS服務,看來是我想多了。(參考資料)。
- TIleStache的優點是集成了緩存功能,論實時訪問切片的效率個人覺得不如TileStrata快。