Ubuntu16.0.4 TileStache牛刀小試

簡介

本文目的

  1. 做個簡單的工作記錄

基礎

TileStache是什麼

TileStache時基於Python編寫,它和TileCache(WMS服務器)很相似。

TileStache的功能

翻譯的可能不是很準確,湊合的理解把,具體以官網爲準。

  1. 可以渲染Mapnik地圖。
  2. 可以訪問預先渲染的MBTiles切片。
  3. 支持GeoJson。
  4. 緩存支持disk,Memcache,Amazon S3,MBTiles,Redis等。
  5. 支持mod_python模塊,可以提高訪問切片的速度。
  6. 使用metaTiles

TileStache安裝

安裝過程主要參考GitHub地址:傳送門

依賴

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

安裝

下載:

  1. 直接從官網下載:傳送門
  2. 也可以從GitHub官網克隆代碼
git clone https://github.com/TileStache/TileStache.git

安裝:

sudo python setup.py install

TileStache配置

TileStache的配置主要參考幫助文檔API文檔


這塊我是用Mapnik數據源,所以配置需要配置Mapnik的xml文件,TileStache的cfg文件,以及TileStache啓動的python腳本文件

  1. 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>
    
  2. 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

效果圖如下:
在這裏插入圖片描述

小結:

  1. TileStache這塊提供的是xyz服務(類似谷歌切片),本來以爲是提供的WMS服務,看來是我想多了。(參考資料)。
  2. TIleStache的優點是集成了緩存功能,論實時訪問切片的效率個人覺得不如TileStrata快。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章