mapnik 筆記一: 入門及python接口使用
mapnik是個地圖渲染的工具,底層C++菇绵,頂層有各種各樣的API接口肄渗,包括python,node.js等咬最。作為地圖渲染引擎翎嫡,有著舉足輕重的地位。mapnik主要完成的是矢量數(shù)據(jù)轉(zhuǎn)成柵格數(shù)據(jù)的過程永乌。
注意惑申,沒有測繪資質(zhì)的單位,不能發(fā)布公開的電子地圖翅雏。
安裝
mac和ubuntu安裝
mac和ubuntu等系統(tǒng)的安裝較為簡單圈驼,不做贅述,詳情參考枚荣。
windows安裝
Windows安裝的詳情參考碗脊,步驟如下:
- 下載二進(jìn)制文件
- 解壓到
C:\mapnik-v2.2.0\\
或自定義位置 - 將
C:\mapnik-v2.2.0\bin
和C:\mapnik-v2.2.0\lib
加入環(huán)境變量中 - python接口配置,將
C:\mapnik-v2.2.0\python\2.7\site-packages
復(fù)制到對應(yīng)python的Lib\site-packages
中 - 注意將
paths.py
中的路徑修改,由于原始路徑適用
注意衙伶,由于mapnik是32的dll文件祈坠,python也需要是32位,所以python的要求版本是32位2.7版矢劲。
python接口使用
你可以直接使用python進(jìn)行矢量數(shù)據(jù)的樣式控制赦拘,生成柵格瓦片地圖,參考rundemo.py芬沉,該文件位于你的安裝文件的demo中躺同。參考在Windows 7 上安裝 Mapnik。
基本操作
文章搭建地圖服務(wù)器(使用Mapnik)介紹了基本的Mapnik操作丸逸。相對來說蹋艺,是一個很不錯的基礎(chǔ)操作。
瓦片輸出
但是黄刚,既然如此捎谨,你還是不知道如何去做一個自己配色的地圖。openstreetmap/mapnik-stylesheets提供了具體的generate_tiles.py
憔维,這個腳本就是一個對瓦片的范圍涛救,Zoom級別進(jìn)行控制。主要函數(shù)render_tiles
的如下:
def render_tiles(bbox, mapfile, tile_dir, minZoom=1,maxZoom=18, name="unknown", num_threads=NUM_THREADS, tms_scheme=False):
"""
bbox是指對應(yīng)的限制區(qū)域业扒,取決于你的地圖范圍
mapfile是xml的地圖文件检吆,包含對應(yīng)的shp文件和樣式參數(shù)
tile_dir是輸出的瓦片文件數(shù)據(jù)
minZoom是最小的Zoom級別
maxZoom是最大的Zoom級別
其它你自己研究吧
"""
最重要的是xml的地圖文件,這個文件格式很繁瑣程储。該文件可以通過TillMill獲得蹭沛,這種方法相對簡單。
參考
- Walkthrough: Creating tiles with Mapnik using TileMill
- Render Google Maps Tiles with Mapnik and Python
轉(zhuǎn)載虱肄,請表明出處致板。總目錄Awesome GIS