前言:夏天总是感觉想要睡觉,一心想颓废的我却要一周六天都要处于工作状态,但有些事虽然麻烦,但还是要去做,不由得想起火影忍者里面鹿丸这一个角色,有时候真能理解他的心理状态,或许我应该向他学习:善于思考的头脑+悠然自得的生活状态。前阵子想玩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初学笔记的更多相关文章

  1. C++ STL初学笔记

    C++  STL初学笔记 更系统的版本见徐本柱的PPT set 在这儿:http://www.cnblogs.com/pdev/p/4035020.html #include <vector&g ...

  2. Spring 初学笔记

    Spring 初学笔记: https://blog.csdn.net/weixin_35909255/article/category/7470388

  3. laravel 5.6初学笔记

    laravel 5.6初学笔记 http://note.youdao.com/noteshare?id=bf4b701b49dd035564e7145ba2d978b4 框架简介 laravel文档齐 ...

  4. csapp网络编程初学笔记

    csapp网络编程初学笔记 客户端-服务器编程模型 每个网络应用都是基于客户端-服务器模型,服务器管理某种资源,并且通过操作来为它的客户提供某种服务 客户端-服务器模型中的基本操作是transacti ...

  5. Python初学笔记之字符串

    一.字符串的定义 字符串是就一堆字符,可以使用""(双引号).''(单引号)来创建. 1 one_str = "定义字符串" 字符串内容中包含引号时,可以使用转 ...

  6. python 初学笔记 (一)

    初学python第一天,希望自己真正了解计算机语言,并且做出成效. 写下学习笔记,记录学习进度,娱乐学习,不断成长. python详细介绍: python是什么?运用到哪里?有哪些在使用它? pyth ...

  7. 从Python到Go:初学笔记

    本文记录了我在学习Go的过程时的一些笔记,主要是比较Python和Go之间的差异并作简单描述,以此使Python程序员对Go语言的特性有简略的了解.初学难免有纰漏,欢迎各位批评指正补充交流,谢谢. 数 ...

  8. SQL 数据库初学笔记一

    做web刚好用得上SQL和php,图书馆借来书,来一个一晚上速成 <SQL必知必会>笔记 通用的语法,相关分类执行程序(DBMS): Apache Open Office Base Ado ...

  9. Ror初学笔记

    Ror正在以惊人的速度增长着,特别是在常常光顾JavaEye的时候发现Ror已经在国内有非常好的基础了,当然要凑个热闹尝尝鲜 咯. 眼下国内Ror的中文资料还是非常少的,到网上找找就仅仅有Eiffel ...

随机推荐

  1. windows下安装composer方法

    composer是一个新崛起的PHP的依赖管理工具.官方安装方法见: 此处假定: (1)php安装目录为C:/php5.4 (2)php 安装目录已经加入PATH环境变量(这样就可以在命令行直接输入“ ...

  2. Java基础笔记(1) 语言 JAVA的历史 Java的搭建环境

    本文除了搭建是重点,其他的都当阅读小说一样去看就好了,不想看可以直接抓住重点,我会改变颜色勾出重点! 英语是人与人交流沟通的重要方式之一.JAVA:是人与计算机沟通交流重要方式之一.我们除了用java ...

  3. MVC 设计模式概述

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/53292312) 1.MVC设计模式: 如图所示,MVC模式(Mod ...

  4. Android 获取系统语言(兼容7.0)

    转载连接:http://likfe.com/2017/05/10/android-sys-language/ 前言 获取系统当前语言是一个比较常用的功能,在 Android 7.0 系统上旧函数获取到 ...

  5. MySql服务的启动和停止

    1.启动:net start mysql; 2.停止:net stop mysql.

  6. Zabbix 添加主机,获取模板templateID

    添加一个Host Name=Mail CAS_1.1,IP=10.16.3.4的主机,并加入组groupID=30,连接模板templateID=10132. # -*- coding: UTF-8 ...

  7. Python实例---beautifulsoup小Demo

    豆瓣 # coding:utf - 8 from urllib.request import urlopen from bs4 import BeautifulSoup html = urlopen( ...

  8. .join() ----- 是把列表中的元素用 "xx".join() 拼接成字符串

    li = ["alex", "eric", "rain"] str1 = "_".join(li) # 是把列表中的元素 ...

  9. Django商城项目笔记No.4用户部分-注册接口-图片验证码

    Django商城项目笔记No.4用户部分-注册接口-图片验证码 1.首先分析注册业务接口 1.1.分析可得,至少这么几个接口 图片验证码 短信验证码 用户名是否存在 手机号是否存在 整体注册接口 图片 ...

  10. Django商城项目笔记No.1项目准备工作

    Django商城项目笔记No.1项目准备工作 一.本项目商城属于B2C商业模式 二.项目采用前后端分离的应用模式 前端使用Vue.js 后端使用Django REST framework 1.创建gi ...