python操作多个图层的mapnik

Mapnik简介与安装 Mapnik is an open source toolkit for developing mapping applications. At the core is a C++ shared library providing algorithms and patterns for spatial data access and visualization. Mapnik is basically a collection of geographic objects like maps, layers 阅读详情

操作单个图层的见之前的文章

vc调用python接口操作mapnik

0.准备工作

1.见之前的文章
2.中国地图包(文件夹里CHN_adm0为国界,CHN_adm1为省界,CHN_adm2为市界)

1.流程

1.新建map
2.创建新图层,包括数据源、样式和规则
3.添加新图层的样式、规则
4.向地图添加刚创建的图层
5.重复2-4步骤添加其他图层
6.渲染到文件

注意:mapnik采用的“画家规则”,即最后添加的图层覆盖之前添加的图层。

2.Python代码

import mapnik
#----------create map---------------------
m = mapnik.Map(800,600);
m.background = mapnik.Color('steelblue');
#----------create layer 1-----------------
Boundries_layer = mapnik.Layer('Boundries');
#----------create layer 1 datasource------
Boundries_layer.datasource = mapnik.Shapefile(file='C:\mapnik-v2.2.0\demo\map\CHN_adm0.shp');
#----------get layer 1 style & rule------
Boundries_style = mapnik.Style();
Boundries_rule = mapnik.Rule();
#----------set layer 1 Polygon & Line color------
Boundries_rule.symbols.append(mapnik.PolygonSymbolizer(mapnik.Color('#f2eff9')));
Boundries_rule.symbols.append(mapnik.LineSymbolizer(mapnik.Color('rgb(50%,50%,50%)'),0.1));
#----------set layer 1 style & rule------
Boundries_style.rules.append(Boundries_rule);
#----------append layer 1 style----------
m.append_style('Boundries Style',Boundries_style);
Boundries_layer.styles.append('Boundries Style');
#----------append layer1 to map----------
m.layers.append(Boundries_layer);


#----------create layer 2-----------------
Province_layer = mapnik.Layer('Province');
#----------create layer 2 datasource------
Province_layer.datasource = mapnik.Shapefile(file='C:\mapnik-v2.2.0\demo\map\CHN_adm2.shp');
#----------get layer 2 style & rule-------
Province_style = mapnik.Style();
Province_rule = mapnik.Rule();
#----------set layer 2 Line color---------
Province_rule.symbols.append(mapnik.LineSymbolizer(mapnik.Color('rgb(50%,50%,50%)'),0.1));
Province_style.rules.append(Province_rule);

m.append_style('Province Style',Province_style);
Province_layer.styles.append('Province Style');
#----------append layer 2 to map----------
m.layers.append(Province_layer);



#----------create layer 3-----------------
City_layer = mapnik.Layer('City');
#----------create layer 3 datasource------
City_layer.datasource = mapnik.Shapefile(file='C:\mapnik-v2.2.0\demo\map\CHN_adm1.shp');
#----------get layer 3 style & rule-------
City_style = mapnik.Style();
City_rule = mapnik.Rule();
#----------set layer 3 Line color---------
City_rule.symbols.append(mapnik.LineSymbolizer(mapnik.Color('#ea5506'),0.5));
City_style.rules.append(City_rule);

m.append_style('City Style',City_style);
City_layer.styles.append('City Style');
#----------append layer 3 to map----------
m.layers.append(City_layer);

m.zoom_all();

mapnik.render_to_file(m,"CHN_0+1+2.png", 'png');

3.得到结果图片

3层渲染结果

4.特殊说明

1.city图层边界包含有province边界。
2.图层province和city所指向的文件本来应该分别对应CHN_adm1和CHN_adm2,但这样的话后渲染的city图层曲线将会覆盖掉之前画的province图层,因此代码里改了顺序,先渲染city曲线,再渲染province曲线,这样就能看清楚province边界了。

23、使用Python和Mapnik生成地图 本文详细介绍了如何使用Python和Mapnik生成地图。内容包括Mapnik的基础知识、颜色对象的创建、地图和图层的构建、样式与规则的设置、地图渲染流程以及优化方法。此外,还探讨了数据源的使用、XML地图定义文件的配置以及常见问题的解决方案。通过实际示例,展示了如何利用Mapnik处理多种地理空间数据格式,并生成高质量的地图图像。文章适合希望使用Python进行地图开发的技术人员参考。 阅读详情

相关推荐

Mapnik简介 说明 Mapnik是一套gis引擎

简单介绍mapnik,并简单介绍Mapnik渲染地图和开发的流程步骤 其核心是一个 C++ 的共享库提供空间数据访问和可视化的算法和模式。

Mapnik简要介绍

<br />Mapnik<br />一、Mapnik介绍<br />Mapnik 是一个开源的Python/C++地图渲染引擎,他的功能是把数据形式的地图,包含一些地理对象,如地图、层、数据源、特征和地理几何等,通过一个样式表的定义,渲染成位图格式,用来提供WMS服务。其核心是一个 C++ 的共享库提供空间数据访问和可视化的算法和模式。该共享库支持多种操作系统,可以在多线程环境下很好的运行,主要面向一些提供GIS服务的Web应用开发。图一为使用mapnik渲染出来的街区图:<br /><br />图一<br

mmtxcp的专栏 1万+

mapnik-styles:此存储库包含用于 Mapnik 地图渲染引擎和 Open StreetMap 数据的自定义样式。 Mapnik 可用于创建静态地图或滑动地图的瓷砖。 这些样式需要具有 Open StreetMap 数据的 PostGIS 数据库才能呈现。 该 repo 附带一些免费的 shapefile,其中一些许可证不明确。 因此,回购是私有的

地图风格 此存储库包含用于 Mapnik 地图渲染引擎和 Open StreetMap 数据的自定义样式。 Mapnik 可用于创建静态地图或滑动地图的瓷砖。 这些样式需要具有 Open StreetMap 数据的 PostGIS 数据库才能呈现。 该 repo 附带一些免费的 shapefile,其中一些许可证不明确,以及一些默认的 J++ 服务器设置。 因此,回购是私有的。 ##Styles 每个样式都包含一个 OSM XML 文件,该文件可以引用patterns和symbols文件夹中的图像、 shapes文件夹中的 shapefile 以及 PostGIS 数据库中的表。 OSM明亮 这是我们对克隆,一个很棒的通用地图。 使用osm2pgsql填充名为gis的 PostGIS 数据库,您就可以开始使用了。 用 Nik4 试试: nik4.py -b 12.54 56.

从5个方面介绍Mapnik

原文发布时间:2014/8/13  9:46:47翻译:lkfree  原文地址: http://blog.safe.com/2014/04/mapnik-automation/Mapnik是一个免费的、开源的工具包,它采用了矢量和栅格空间数据,并可以将矢量和栅格数据转换为一幅美丽的影像。在FME 2014版本中, FME和Mapnik已经集成在一起用于创建MapnikRasterizer 。这种...

fmechina的博客 4525

mapnik&python生成离线地图瓦片

写于20150414 一次只能上传一份那我就少点多几份吧: 介绍(免积分) http://download.youkuaiyun.com/detail/a137015127302/8594877 如果懒得自己慢慢找,我想你不介意花点积分的吧。

python-mapnik:Mapnik的Python绑定

Mapnik的Python绑定。 安装 最终,我们希望许多人能够简单地点子pip install mapnik以获得预建的二进制文件,但是目前这还行不通。 所以现在这是说明 创建一个虚拟环境 强烈建议您在mapnik上进行开发时 。 梅森大厦 如果您没有从源代码构建mapnik,而只是希望从的最新版本进行开发,则可以使用泥瓦匠构建来设置环境。 为了在构建之前触发梅森构建,您必须设置MASON_BUILD环境变量。 export MASON_BUILD=true 完成此操作后,只需按照源构建的说明进行操作即可。 从源头建造 假设您从源代码构建了自己的mapnik,并且已经运行了make install 。 根据需要设置任何编译器或链接环境变量,以便找到您的mapnik安装。 接下来,只需运行以下两种方法之一: python setup.py develop 如果您当前正在使用mapni

Mapnik Python 绑定使用教程

Mapnik Python 绑定使用教程 1. 项目的目录结构及介绍 Mapnik 是一个开源的地图渲染工具库,其 Python 绑定允许开发者使用 Python 语言来操作 Mapnik 进行地图渲染。以下是 Mapnik Python 绑定项目的目录结构及各部分介绍: python-mapnik/ ├── bindings/ # Python 绑定代码 │ ├── pyt...

gitblog_01097的博客 546

西门子博图指令(定时器操作三)

西门子博图定时器中复位定时器功能指令介绍

yue008的博客 8873

搭建地图服务器(使用Mapnik)

渲染引擎Mapnik 上一篇文章中大概介绍了 Mapnik ,它是一个渲染引擎,一般开发中都会使用他的python的bind做开发。 Mapnik的文档写的比较详细,我们这里只是做一些必要的介绍,详细的细节可以参看Mapnik在 Github上的文档 。 在Mac下,安装Mapnik十分容易,使用brew即可,注意我们在此处带上 --with-postgresql 选项,使得Ma

ACM Dream 9867

接上篇,记录一下【Unity 3D对博途PLCSIM的通讯】文章有点长~仔细看,很基础

本文参考链接:西门子PLC丨PROFINET通讯仿真(虚拟通讯)做了一些更详细的优化,本文使用的类库并非原作者使用的类库。 首先,昨天项目已经创建好了,这边也加了一个InputField和一个Button,可以实现简单的读取,ok开始。 放入准备好的通讯类库; 新建一个博途的项目,本次测试使用博途V15,测试环境为虚拟机,Unity运行在本地计算机,建立博途项目流程如下: 新建项目,右键项目-属性-保护-对勾,如图: 不得不说的是,仿真中加密的FB块是无法下载的哦~ 添加CPU...

NS_Speak(IVAV) 8060

钢铁雄心4存档修改全攻略:从基础设置到高级玩法(附国家代码表)

本文详细解析《钢铁雄心4》存档修改技巧,从基础设置到高级玩法全覆盖。包括存档文件位置、格式转换、国家实力调整、国际关系修改等实用内容,并附赠国家代码表。掌握存档修改技能,解锁游戏全部潜力,实现精细参数控制,超越控制台指令的局限。

weixin_29233857的博客 1432

[转]Mapnik

<br />转自:http://blog.youkuaiyun.com/mmtxcp/archive/2010/06/02/5638968.aspx<br /> <br />一篇Mapnik的介绍文档<br />一、 Mapnik 介绍 <br />Mapnik 是一个开源的 Python/C++ 地图渲染引擎,他的功能是把数据形式的地图,包含一些地理对象,如地图、层、数据源、特征和地理几何等,通过 一个样式表的定义,渲染成位图格式,用来提供 WMS 服务。其核心是一个 C++ 的共享库提供空间数据访问和可视化的算法和

cnhome的专栏 2474

【入坑存内计算一键指南】存内计算运算原理:算法优化、存储介质探究

本文探讨了存内计算及其面向的架构优化,尤其侧重于图算法优化和存内计算存储介质。文章介绍了存内计算的概念和意义,着重强调了存内计算解决了内存墙问题,提高了计算效率。针对图算法的优化,提出了基于位运算的创新方法,重塑了单源最短路径算法,并介绍了基于局部重叠度的链路预测算法优化设计。接着,文章详细讨论了存内计算存储介质,特别是非易失性存储器,比较了不同类型存储器的性能,并重点介绍了基于ReRAM的存内计算技术,包括其物理模型和交叉阵列结构。

一键难忘的博客 7066

gps轨迹匹配地图 python_Python Mapnik:关于如何使用gps轨道渲染地图的示例

我正在尝试使用mapnik和python从记录的GPS轨迹渲染地图.我从数据库中获取gps数据,因此它只是一个数组(lat,long).有谁知道这样做的例子?我知道我需要先创建一个形状文件,但我是mapnik的新手,到目前为止我还不太了解它.也许有一个很好的例子我会得到它:-)谢谢解决方法:最简单的方法实际上是使用KML文件.安装simplekml模块,然后运行阵列以创建KML文件.import ...

weixin_34942785的博客 572

零基础教你学RDMA驱动开发--第8篇:队列对(QP)、完成队列(CQ)与工作请求(WR)机制剖析

本文深入剖析了RDMA(远程直接内存访问)中的核心机制:队列对(QP)、完成队列(CQ)和工作请求(WR)。QP作为通信端点包含发送队列(SQ)和接收队列(RQ);WR是用户提交的操作指令,转换为工作队列元素(WQE)后由网卡异步执行;CQ则提供完成通知机制。文章详细介绍了三者的协作原理,包括QP状态机、WR提交方式、CQ轮询机制,以及关键的信号控制技术(Signaled Mode)来优化性能。同时对比了SEND/RECV和RDMA WRITE两种模式的差异,提供了调试技巧和最佳实践。这些机制共同构成了RD

amy_mhd的博客 156

STM32实战开发(66):STM32图像处理开发教程

随着物联网、人工智能和嵌入式技术的不断发展,图像处理技术在嵌入式系统中的应用越来越广泛。图像处理不仅在视觉识别、安防监控、智能家居等领域中发挥着重要作用,也在工业自动化、医疗成像、无人驾驶等高科技领域中占据重要地位。而STM32凭借其强大的硬件性能和丰富的外设支持,成为了许多图像处理应用的理想平台。

2201_76125393的博客 1444

mapnik渲染raster tiff栅格图

之前的文章写了怎么渲染shp格式的矢量地图,这里记录下怎么渲染栅格图tiff格式。

小猿一枚的专栏 2667

2026华为OD机试(C++)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,C++实现。

MISAYAONE的博客 20万+

Mapnik 介绍

Mapnik 一、 Mapnik 介绍 Mapnik 是一个开源的 Python/C++ 地图渲染引擎,他的功能是把数据形式的地图,包含一些地理对象,如地图、层、数据源、特征和地理几何等,通过 一个样式表的定义,渲染成位图格式,用来提供 WMS 服务。其核心是一个 C++ 的共享库提供空间数据访问和可视化的算法和模式。该共享库支持多种操作系统,可以在多线程环境下很好的运行,主要面向一些提供 G

OPEN_GIS 4283

使用菱FX5U系列PLC实现以太网通信的具体方法示例

接下来,我们将创建一个简单的CPU通信功能,以实现与其他设备的以太网通信。在上述代码中,我们首先设置访问号,然后创建一个数据读取命令(M_READ)和一个数据写入命令(M_WRITE)。此外,在实际应用中,您还需要确保PLC和其他设备之间的网络连接正常,并且遵循相应的通信协议。在上述代码中,我们执行了数据读取命令,并将接收到的响应存储在M_RESPONSE变量中。通过简单CPU通信功能,菱FX5U系列PLC可以实现与其他设备的以太网通信。我们将提供相应的源代码和详细的说明,以帮助您轻松实现这一功能。

DevCyberX的博客 1525

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Mapnik教程-使用Python创建地图

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34209406的博客 853

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Mapnik读取PostGIS数据渲染图片

__author__ = 'Administrator' # encoding: utf-8 import sys import datetime import mapnik m = mapnik.Map(256,256,"+proj=latlong +datum=WGS84") #m.background = mapnik.Color('steelblue') # set bac...

weixin_38166557的博客 173

Ubuntu16.04 Flask+Python-Mapnik + PostGIS 矢量切片初体验

矢量切片 Python-Mapnik 矢量切片服务端 矢量切片客户端

爱莫能助 1785
上一篇: vc调用python接口操作mapnik
下一篇: mapnik渲染raster tiff栅格图
洗洗睡去
博客等级 码龄19年 277粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值