Mapnik简要与技术说明
来源:互联网 发布:sum服务器监控软件 编辑:程序博客网 时间:2024/06/05 14:32
Mapnik是一个开源的 Python/C++ 地图渲染引擎,他的功能是把数据形式的地图(主要是指shapefile,osm等GIS数据),包含一些地理对象,如地图、层、数据源、特征和地理几何等,通过一个样式表的定义,渲染成位图格式,用来提供 WMS 服务。其核心是一个C++ 的共享库,提供空间数据访问和可视化的算法和模式。
该共享库支持多种操作系统,可以在多线程环境下很好的运行,主要面向一些提供GIS服务的Web应用开发。对于桌面应用来讲,Mapnik也提供了非常方便的支持。 作为一个开源的地图渲染引擎,Mapnik 拥有良好的技术架构,并使用了很多成熟的开源技术,如proj4、freetype、libxml2、GDAL、Boost、ltdl等,并使用AGG、Cairo-Graphics来具体渲染绘制,具有良好的反锯齿效果!大量使用了Boost库特有的C++技术,如variant、tuple,并利用 C++ STL(仿函数等)、泛型编程技术及相关设计模式(单件模式、访问者模式等),使用插件式的数据源开发方式,使Mapnik可以灵活扩展出针对自己的数据格式插件! 然而对于开发人员,mapnik采用的属性与具体渲染操作分开的模式,屏蔽了内部复杂的实现细节,而对外提供的接口确是简单易用!
Mapnik数据组织包括地图、图层、风格、规则、符号等,其具体以渲染地图文件的方式或者是编程实现的方式予以提供。地图中可以包含多个风格(Style)、多个图层(Layer),图层包含对应一个数据源及多个风格,风格包含多个规则,一个规则可以包含多种符号,不同的符号包含不同的属性设置,以 LineSymbolizer为例,包含stroke(颜色)、stroke-width(宽度)、透明度stroke-opacity、线相交处模式,stroke-linejoin、线头模式stroke-linecap、线段绘制迭代间隔stroke-dasharray。不同的符号之间也有一些相同的属性如 line_pattern_symbolizer、polygon_pattern_symbolizer 、point_symbolizer都需要一个file属性来作为填充图片! 使用Mapnik的主要技术流程为:
定义 Map对象,设置绘制使用的设备大小,及投影信息
加载 Map的配置信息
设置 Map绘制的地理范围
定义绘制使用的设备( agg_renderer为内存图片缓冲区)
使用 aggrenderer或者 cairorenderer 渲染
保存到文件(可选,对于 cairo_renderer渲染到 pdf 及 svg 等矢量文件时不需要)
- Mapnik简要与技术说明
- Mapnik简要介绍
- Mapnik简要介绍
- MXML与ActionScript简要说明
- MQ说明与简要命令使用
- Consumer使用示例与配置简要说明
- Log4net配置与使用简要说明
- Log4net配置与使用简要说明
- Log4net配置与使用简要说明
- Log4net配置与使用简要说明
- Log4net配置与使用简要说明
- Log4net配置与使用简要说明
- HashMap与LinkedHashMap实现简要说明
- nginx 与 apche 区简要说明
- 中水处理设备:中水回用技术简要说明
- GNU CC (GCC)与库文件的简要说明
- Ansi与Unicode简要说明及各自的优缺点:
- Ansi与Unicode简要说明及各自的优缺点
- Kali Linux 秘籍 第二章 定制 Kali Linux
- 代码中特殊的注释技术——TODO、FIXME和XXX的用处
- 相对路径与绝对路径
- 如何在Solr中更好的处理同义词
- 【leetcode】377. Combination Sum IV【M】
- Mapnik简要与技术说明
- FL2440开发板 platform_led驱动及应用程序
- hdu 2072
- mobSF漏洞扫描ipa包
- 32位 64位操作系统下基本数据类型字节大小
- Android Service的生命周期2
- 【自用】JS学习书目
- WANMPServer一键服务器v0.2 64位版
- 简单题:读入两个参数