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,优化时,记得降低数据源的最小缩放比例,可使在较低的缩放级别时每个矢量瓦片包含较少的数据。

时间: 2024-08-29 07:58:04

Mapnik初学笔记的相关文章

初学笔记(C#事件)

1.声明事件      EventHandler是一个预定义的委托,它定义了一个无返回值的方法.在 .Net Fromwork中,他的格式: public  delegate  void EventHandler (Object  sender, EvenArgs  e) 其中sender的类型为Object,表示时间发布者本身,e用来传递事件的相关信息,数据类型为EvenArgs及其派生类. 标准的EvenArgs并不包含任何事件数据, 因此EventHandler专用于表示不生成数据的事件的

lisp初学笔记

学习任何知识,都不能仅仅把它们当做知识,更重要的是要把它们在实际编程实践中应用起来,持有这样的学习观念才不至于让你变成学究式的活字典,对于程序员来说这一点尤其重要,你学习的任何语言知识,一定要在实际的程序编写过程中不断练习.不停实践,纸上得来终觉浅,绝知此事须躬行. LispBox 实际上是把 Emacs.Slime.Clozure CL 以及 QuickLisp 集成到一起,使用 LispBox 做开发环境就相当于选择了 Emacs 作为编辑器.选择 Slime 作为交互界面,那么一定要熟悉

flex入门--初学笔记1

环境:flashBuilder + eclipse 4.2 基本控件: 1 <mx:Script> 2 <![CDATA[ 3 import mx.controls.Alert; 4 public function showMsg(msg:String):void{ 5 mx.controls.Alert.show(msg); 6 } 7 ]]> 8 </mx:Script> 9 <mx:Panel title="常用控件" width=&qu

AS3 初学笔记 actionscript-之变量

变量 变量可用来存储程序中使用的值.要声明变量,必须将 var 语句和变量名结合使用.在 ActionScript 2.0 中,只有当您使用类 型注释时,才需要使用 var 语句.在 ActionScript 3.0 中,总是需要使用 var 语句.例如,下面的 ActionScript 行声明一个名 为 i 的变量: var i; 如果在声明变量时省略了 var 语句,则在严格模式下会出现编译器错误,在标准模式下会出现运行时错误.例如,如果以前未 定义变量 i,则下面的代码行将产生错误: i;

js&#39;初学笔记

之前看过一个博主说的学习前端养成写博客的习惯,我慢慢学着在上面写点东西,记录我的学习. 这段时间把之前学的js基础补上一点,学了一些对数组和字符的操作,split(),将字符串变成数组.join(),数组变为字符串.conca()连接数组. charAt(),charCodeAt(),formCharCode(),slice(start,end),substring(),substr(start,length);indexOf(); 有一些我就不多说了,在这里记下来,以后看看,有兴趣可以看看山冈

网站初学笔记3-HTML实用元素

HTML中链接邮件地址: <!DOCTYPE html><html><body> <address>Written by <a href="mailto:[email protected]">Donald Duck</a>.<br> Visit us at:<br>Example.com<br>Box 564, Disneyland<br>USA</addres

TensorFlow官方文档MNIST初学笔记[二]

TensorFlow官方文档MNIST初学笔记[二] MNIST是一个简单的计算机视觉数据集, 它还包括每个图像的标签, 每个图像是28像素乘以28像素, 我们可以把这个数组变成一个28×28 = 784个数字的向量.MNIST只是一个784维向量空间中的一个点.mnist.train.images具有形状的张量(n维阵列)[55000, 784] 第一维度是图像列表中的索引,第二维度是每个图像中每个像素的索引.对于特定图像中的特定像素,张量中的每个条目是0和1之间的像素强度. MNIST中的每

网站初学笔记3-HTML实用元素2

HTML 链接 - name 属性 name 属性规定锚(anchor)的名称.您可以使用 name 属性创建 HTML 页面中的书签.书签不会以任何特殊方式显示,它对读者是不可见的.当使用命名锚(named anchors)时,我们可以创建直接跳至该命名锚(比如页面中某个小节)的链接,这样使用者就无需不停地滚动页面来寻找他们需要的信息了. 首先,我们在 HTML 文档中对锚进行命名(创建一个书签):<a name="tips">基本的注意事项 - 有用的提示</a&

网站初学笔记1

什么是 WWW?WWW 指万维网(World Wide Web)万维网常被称为WebWeb 是由遍布全球的计算机所组成的网络所有 Web 中的计算机都可以彼此通信所有这些计算机都使用名为 HTTP 的通信标准 WWW 如何工作?Web 信息存储于被称为网页的文档中网页是存储于被称为 Web 服务器的计算机上读取网页的计算机称为 Web 客户端Web 客户端通过称为浏览器的程序来查看网页主要的浏览器有 Internet Explorer 和 Mozilla Firefox 浏览器如何读取页面?浏览