Mapnik初学笔记
前言:夏天总是感觉想要睡觉,一心想颓废的我却要一周六天都要处于工作状态,但有些事虽然麻烦,但还是要去做,不由得想起火影忍者里面鹿丸这一个角色,有时候真能理解他的心理状态,或许我应该向他学习:善于思考的头脑+悠然自得的生活状态。前阵子想玩node.js,这几天因为看单反教程和修图给暂停了,现在有一个关于地图的项目要去做,有一个有趣的工具叫做mapnik,不知道你们有没有听说过,反正我是没听说过,不过让我惊喜的是mapnik能和node.js一起玩,哎呦,不错哦,这个叼。
Mapnik:
Mapnik 是一个用来开发 GIS (即地理信息系统)应用程序的工具包,其核心是一个 C++ 的共享库提供空间数据访问和可视化的算法和模式。特别是包含一些地理对象,如地图、层、数据源、特征和地理几何等。该共享库支持多种操作系统,可以在多线程环境下很好的运行,主要面向一些提供GIS服务的Web应用开发。
从另一种角度解释,Mapnik是一个开源的Python/Node.js/C++地图渲染引擎,其功能是把数据形式的地图,包含一些地理对象,如地图、层、数据源、特征和地理几何等,通过一个样式表的定义,渲染成位图格式,用来提供网络地图服务(WMS服务)。

矢量瓦片:
矢量瓦片是将矢量数据转换成图片块,用于在线地图,借助瓦片的缓存机制,实现可缩放的地图呈现服务,每一个图片块都代表一个坐标区域。
一个矢量瓦片,包含所有的坐标信息和元数据,比如道路名称、地块类型、建筑高度,以一种紧凑的可解析的格式。矢量瓦片是一种高性能格式,在样式、输出格式和交互方面更加灵活。

3.Node.js 与 Express
Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动,非阻塞 I/O 模型而得以轻量和高效,非常适合在分布式设备上运行的数据密集型的实时应用。
Node.js官网:https://nodejs.org/
Express 是一个简洁、灵活的 Node.js Web 应用开发框架, 它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。
推荐网站:http://www.expressjs.com.cn/
通过Node.js与Express搭建本地Http访问服务命令:(基于Windows)
去Node.js官网下载安装node.js
确认已经安装 node -v
npm安装Express插件 npm install express
Express安装node.js项目bin express bin
进入项目目录,安装node.js依赖模块 cd bin && npm install
启动服务 node ./bin/www
浏览器输入http://localhost:3000/,进行访问.(localhost可换成IP地址)
Mapbox Studio:

关于mapnik这个工具包的使用我找到一款软件可以供大家参考,即Mapbox推出的Mapbox Studio,官网是https://www.mapbox.com/,mapbox是一个更专业的地图应用,可以定制出简单、专业、漂亮的地图,但我们需要一个Mapbox账号来访问Mapbox中默认的矢量瓦片数据源。
而Mapbox Studio是一款开源软件,使用了大量的web技术,其中有mapnik、node.js、backbone.js、codemirror、leaflet等,其客户端本身就是一个webapp + Chrome,跨平台并且有良好的交互体验,加入了前端的技术。Mapbox Studio 是一个由Mapbox全新设计的应用,全力支持矢量瓦片,开源,Mapbox Studio代码托管在GitHub。
Mapbox Studio基于矢量瓦片,使得样式渲染更快,允许任何人使用海量全球数据库,样式修改布局可以在几秒钟内完成。分辨率独立,基于矢量瓦片的样式项目,可以支持视网膜屏幕,支持高达600dpi渲染,这是普通地图所不支持的。
Mapbox Studio这个平台基于mapnik矢量瓦片格式,用Mapnik在后端渲染。PS:任何单独的瓦片不能超过500k,优化时,记得降低数据源的最小缩放比例,可使在较低的缩放级别时每个矢量瓦片包含较少的数据。
Mapnik初学笔记的更多相关文章
- C++ STL初学笔记
C++ STL初学笔记 更系统的版本见徐本柱的PPT set 在这儿:http://www.cnblogs.com/pdev/p/4035020.html #include <vector&g ...
- Spring 初学笔记
Spring 初学笔记: https://blog.csdn.net/weixin_35909255/article/category/7470388
- laravel 5.6初学笔记
laravel 5.6初学笔记 http://note.youdao.com/noteshare?id=bf4b701b49dd035564e7145ba2d978b4 框架简介 laravel文档齐 ...
- csapp网络编程初学笔记
csapp网络编程初学笔记 客户端-服务器编程模型 每个网络应用都是基于客户端-服务器模型,服务器管理某种资源,并且通过操作来为它的客户提供某种服务 客户端-服务器模型中的基本操作是transacti ...
- Python初学笔记之字符串
一.字符串的定义 字符串是就一堆字符,可以使用""(双引号).''(单引号)来创建. 1 one_str = "定义字符串" 字符串内容中包含引号时,可以使用转 ...
- python 初学笔记 (一)
初学python第一天,希望自己真正了解计算机语言,并且做出成效. 写下学习笔记,记录学习进度,娱乐学习,不断成长. python详细介绍: python是什么?运用到哪里?有哪些在使用它? pyth ...
- 从Python到Go:初学笔记
本文记录了我在学习Go的过程时的一些笔记,主要是比较Python和Go之间的差异并作简单描述,以此使Python程序员对Go语言的特性有简略的了解.初学难免有纰漏,欢迎各位批评指正补充交流,谢谢. 数 ...
- SQL 数据库初学笔记一
做web刚好用得上SQL和php,图书馆借来书,来一个一晚上速成 <SQL必知必会>笔记 通用的语法,相关分类执行程序(DBMS): Apache Open Office Base Ado ...
- Ror初学笔记
Ror正在以惊人的速度增长着,特别是在常常光顾JavaEye的时候发现Ror已经在国内有非常好的基础了,当然要凑个热闹尝尝鲜 咯. 眼下国内Ror的中文资料还是非常少的,到网上找找就仅仅有Eiffel ...
随机推荐
- Vue知识点(面试常见点)
v-bind和v-model的区别 1.v-bind用来绑定数据和属性以及表达式,缩写为':' 2.v-model使用在表单中,实现双向数据绑定的,在表单元素外使用不起作用 什么是 mvvm? MVV ...
- 【代码笔记】iOS-performSelectorOnMainThread
代码: RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIViewControl ...
- CSS3 鼠标划上图片放大
td img{transition: all 1s}/*鼠标划上,图片1s全部显示完成*/ td img:hover{ transform: scale(5) translateX(50%) tran ...
- 绝版Node--Sequlize搭建服务(Node全栈之路 二)
在Node全栈之路(一),也就是上篇文章中,我们讲到了sequlize的基本增删该查,这篇文章,我们在上篇文章的基础上继续探讨,讲一下关于sequlize创建的表之间的对应关系 参考资料:https: ...
- [Android] 针对生成的图片文件在系统Gallery不显示的处理
之前遇到过一个问题,就是发现我在程序中生成一个新的 Bitmap 之后,当我打开系统的 Gallery 查看时,并没有看到新生成的图像.然而打开文件浏览器,找到保存 Bitmap 所在的文件夹下,还能 ...
- 查询es curl命令记录
curl -H "Content-Type: application/json" -XGET http://10.65.0.33:9200/online/senseLog/_se ...
- AOP编程报错Xlint:invalidAbsoluteTypeName
@Component@Aspectpublic class DingdingAspect { private Logger logger = LoggerFactory.getLogger(this. ...
- 【SPL标准库专题(8)】 Datastructures:SplFixedArray
SplFixedArray主要是处理数组相关的主要功能,与普通php array不同的是,它是固定长度的,且以数字为键名的数组,优势就是比普通的数组处理更快. 类摘要 SplFixedArray im ...
- SqlServer PIVOT函数快速实现行转列,UNPIVOT实现列转行
我们在写Sql语句的时候没经常会遇到将查询结果行转列,列转行的需求,拼接sql字符串,然后使用sp_executesql执行sql字符串是比较常规的一种做法.但是这样做实现起来非常复杂,而在SqlSe ...
- cisco查看机框 板卡 电源 SN 风扇环境运行状态和一些常用命令 巡检命令
查看设备运行环境及状态 show environment 查看设备环境show environment temperature --查设备温度 show environment fans --查看设备 ...