mapnik 笔记一: 入门及python接口使用
mapnik是个地图渲染的工具,底层C++,顶层有各种各样的API接口,包括python,node.js等。作为地图渲染引擎,有着举足轻重的地位。mapnik主要完成的是矢量数据转成栅格数据的过程。
注意,没有测绘资质的单位,不能发布公开的电子地图。
安装
mac和ubuntu安装
mac和ubuntu等系统的安装较为简单,不做赘述,详情参考。
windows安装
Windows安装的详情参考,步骤如下:
- 下载二进制文件
- 解压到
C:\mapnik-v2.2.0\\
或自定义位置 - 将
C:\mapnik-v2.2.0\bin
和C:\mapnik-v2.2.0\lib
加入环境变量中 - python接口配置,将
C:\mapnik-v2.2.0\python\2.7\site-packages
复制到对应python的Lib\site-packages
中 - 注意将
paths.py
中的路径修改,由于原始路径适用
注意,由于mapnik是32的dll文件,python也需要是32位,所以python的要求版本是32位2.7版。
python接口使用
你可以直接使用python进行矢量数据的样式控制,生成栅格瓦片地图,参考rundemo.py,该文件位于你的安装文件的demo中。参考在Windows 7 上安装 Mapnik。
基本操作
文章搭建地图服务器(使用Mapnik)介绍了基本的Mapnik操作。相对来说,是一个很不错的基础操作。
瓦片输出
但是,既然如此,你还是不知道如何去做一个自己配色的地图。openstreetmap/mapnik-stylesheets提供了具体的generate_tiles.py
,这个脚本就是一个对瓦片的范围,Zoom级别进行控制。主要函数render_tiles
的如下:
def render_tiles(bbox, mapfile, tile_dir, minZoom=1,maxZoom=18, name="unknown", num_threads=NUM_THREADS, tms_scheme=False):
"""
bbox是指对应的限制区域,取决于你的地图范围
mapfile是xml的地图文件,包含对应的shp文件和样式参数
tile_dir是输出的瓦片文件数据
minZoom是最小的Zoom级别
maxZoom是最大的Zoom级别
其它你自己研究吧
"""
最重要的是xml的地图文件,这个文件格式很繁琐。该文件可以通过TillMill获得,这种方法相对简单。
参考
- Walkthrough: Creating tiles with Mapnik using TileMill
- Render Google Maps Tiles with Mapnik and Python
转载,请表明出处。总目录Awesome GIS
网友评论