Mapnik 笔记一: 入门及python接口使用

mapnik 笔记一: 入门及python接口使用

mapnik是个地图渲染的工具,底层C++,顶层有各种各样的API接口,包括pythonnode.js等。作为地图渲染引擎,有着举足轻重的地位。mapnik主要完成的是矢量数据转成栅格数据的过程。

注意,没有测绘资质的单位,不能发布公开的电子地图。

安装

mac和ubuntu安装

mac和ubuntu等系统的安装较为简单,不做赘述,详情参考

windows安装

Windows安装的详情参考,步骤如下:

  • 下载二进制文件
  • 解压到C:\mapnik-v2.2.0\\或自定义位置
  • C:\mapnik-v2.2.0\binC:\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获得,这种方法相对简单。

参考

转载,请表明出处。总目录Awesome GIS

推荐阅读更多精彩内容