Mapnik概述

来源:互联网 发布:战争框架淘宝mod 编辑:程序博客网 时间:2024/06/03 23:20

Mapnik是一个强大的使用地理空间数据创建地图的强大工具包 , 其核心是一个 C++ 的共享库提供空间数据访问和可视化的算法和模式, 特别是包含一些地理对象,如地图、层、数据源、特征和地理几何等。 它提供了一些功能,可以用来设计具有良好视觉效果的地图。 Mapnik会产生地图,地图对象是Mapnik的API的核心。 地图对象提供了生成图像输出格式的方法(通常是PNG或者是PDF)。

Mapnik的应用主要包括三个方面:它可以作为一个 C++ 代码的共享库; 它可以用来编写 Python 脚本; 还可以用来编写和处理 XML 配置文件。

Mapnik地图内部有很多图层,每一层都与数据源密切相关。 每种典型的数据源(例如,Shapefile数据源、in-memory数据源、Raster数据源)都具有多种要素(如点、线、面等)。 一个数据源可以指示一个shapefile文件、空间数据库、光栅图像文件或大量的其他空间数据源。在大多数情况下,建立一个数据源层是很容易的。理解 Mapnik 的工作机制必须注意,使用Mapnik来渲染地图时顺序非常重要。 它使用Painter算法来决定Z轴次序,即图层按一定顺序描绘, “顶”层在其他层之上,最后描绘。

在每一层中,地理空间数据可视化的显示是通过一种叫做symbolizer的东西控制的。 虽然在Mapnik有许多不同类型的symbolizers可以利用, 但是我们这里感兴趣的是三种symbolizers。

一种样式定义了图层中对象是怎么渲染的。 一种样式包含了一种或多种规则,可以有选择性的限制其输出。 过滤出数据源提供的对象的一个子集。 例如只显示那些具有特殊属性的对象。 过滤式可以选择的--对于简单的地图通常每层有一个规则,再没有其他的过滤器。 每一个规则持有一个或者多个符号, 这是用于在实际输出时绘制几何图形的。 根据符号类和设置几何图型可以以很多种形式产生。

0 0