おしらせ

TileStache

2014年11月21日

TileStacheとは

TileStacheとは、ベクトルタイルに対応したタイルキャッシュサーバです。

インストール

・pip

curl -O -L https://raw.github.com/pypa/pip/master/contrib/get-pip.py -k
sudo python get-pip.py

・ModestMaps、PIL

sudo pip install -U --allow-external PIL modestmaps simplejson werkzeug

・mapnik

!!入っていた!!たしか、苦労した記憶がある

・TileStache

git clone https://github.com/TileStache/TileStache.git
cd TileStache
sudo python setup.py install

※次のエラーが出たが動いたのでそのまま

Error in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "/usr/lib64/python2.6/multiprocessing/util.py", line 258, in _exit_function
    info('process shutting down')
TypeError: 'NoneType' object is not callable
Error in sys.exitfunc:
Traceback (most recent call last):
  File "/usr/lib64/python2.6/atexit.py", line 24, in _run_exitfuncs
    func(*targs, **kargs)
  File "/usr/lib64/python2.6/multiprocessing/util.py", line 258, in _exit_function
    info('process shutting down')
TypeError: 'NoneType' object is not callable

実行

./scripts/tilestache-server.py --config ./tilestache.cfg --ip 192.168.0.25 --port 8081

 オプションは
  --config : 設定ファイル。デフォルトはtilestache.cfg
  --ip : 待ち受けするサーバ自身のIPアドレス。0.0.0.0だと全てを許可。デフォルトは127.0.0.1
  --port : ポート。デフォルトは8080

テスト

デフォルトのtilestache.cfgでは次の2つが見えます。
http://192.168.0.25:8081/osm/preview.html
http://192.168.0.25:8081/example/preview.html

ベクトルタイルの設定例

"road":
{
"provider": {"name": "vector", "driver": "PostgreSQL",
             "parameters": {"dbname": "dbname",
                            "host": "hostname", "port":"5432", "user": "user", "password": "passwd",
                            "table": "tablename"},
                            "properties": {"mesh":"二次メッシュ", "node1":"ノード1", "node2":"ノード2"}
                  }
	  ,"bounds": {"north": 50, "west": 120, "south": 22, "east": 150, "low": 15, "high": 31}
	  ,"tile height": 256
	  ,"allowed origin": "*"
	  ,"cache lifespan": 86400
	  ,"maximum cache age": 86400
    }

http://192.168.0.25:8081/road/15/28786/12890.geojson

{
 type: "FeatureCollection",
 features: [
 {
  geometry: {
   type: "LineString",
   coordinates: [
    [
     136.263428,
     35.793489
    ],
・・・
    [
     136.252865,
     35.796169
    ],
    [
     136.252441,
     35.796172
    ]
   ]
  },
  type: "Feature",
  properties: {
   二次メッシュ: "533652",
   ノード1: "****",
   ノード2: "****",
  }
 }
]
}