第六章 应用Web地图API拜访地图服务

以下均掺杂集体了解
书目:Web GIS 原理与利用开发 —— 刘光 曾敬文 曾庆丰 著

6.1 Web地图API

API:Application Programming Interface,利用程序接口。是编写程序的一个框架,蕴含了一组封装了底层代码的类与性能。

API并不是一种编程语言,只是某种语言或者某些语言可调用的一组类和性能

6.1.1 Web地图API的抉择

  • 运行在挪动端或者pc端
  • 应用程序或者是浏览器查看
  • 开发与保护的难度
  • 开源API或者是商业API
  • 等等方面

6.1.2 次要FOSS类型的Web地图API

6.1.2.1 Openlayers

Openlayers采纳面向对象形式开发,并应用来自Prototype.js和Rico中的一些组件。

较为成熟,尽管文档较难了解,然而有大量的实例,还有社区。

6.1.2.2 Leaflet

玲珑不便,易于上手,在挪动设施上有良好的体验。

强调应用切片地图以及客户端的矢量图<u>绘制</u>。

实例较少

6.1.2.3 D3

罕用于绘制图表

将数据绑定到页面的DOM(文档对象模型)上,而后利用数据驱动转换到文档(页面元素),从而实现数据灵便地动画与变换成果。

6.1.2.4 Polymaps

在地图风格化方面有一个相似于CSS的选择器

6.1.3 次要的商业Web地图API

6.1.3.1 谷歌地图与必应地图API
6.1.3.2 ArcGIS APIs

6.2 应用Web地图API的根本步骤

尽管API应用办法不尽相同,每种API都是本人的长处和毛病,然而这个API都有一些通用模式与过程。

该形式为HTML页面援用形式,若应用框架开发,还需理解框架的具体操作办法。

6.2.1 援用Javascript与款式文件

在应用前,须要在html的head标签内,对API进行援用。

须要留神的是:援用的js越多,页面加载工夫越长(页面的js是通过网络申请获取到的)

援用API的形式

  • 将API下载并部署到本人的服务器上,这样做的益处是将加载工夫减到最小,而且能够自定义API。
  • 援用别人服务器上的API。内容散发网络(Content Delivery Network ,CDN)站点专门用于存储通用API。

对于Web地图API,在援用js文件的同时,个别会有配套的款式文件(css)须要援用。

6.2.2 地图div与对象

在创立地图对象前,须要在页面创立一个div元素,用于显示地图,一个div对应一个地图对象,个别通过id属性进行绑定。

6.2.3 Layer对象

在某种意义上,图层就代表WMS或者切片地图的一个Web服务,它自身也能够蕴含许多数据图层

图层对象通常是一个抽象类,提供一系列通用的属性办法,开发人员不能间接对其进行实例化,而是实例化它的子类(如ArcGIS APIs中的WMSLayer、FeatureLayer、GraphicsLayer等等)

创立好Layer对象后,不要遗记将其增加至地图对象中

6.2.4 图层款式化机制

对于从服务端获取的地图元素来说,款式曾经提前定义好了,而对于在客户端动静绘制的地图元素,咱们须要为其定义款式,API会提供一些定义款式的办法,包含符号、填充色彩、填充款式等等。

6.2.5 事件与交互元素

最罕用的交互有两类,一类为鼠标或键盘事件,一类为图层显示管制

API会提供地图的事件监听,创立监听对象时能够定义事件产生的回调函数

图层显示管制即管制某个图层的显示与暗藏。须要留神的是,切片服务无法控制外部某个图层,只能管制整体

6.2.6 异步解决

在Web地图API中,大部分操作都是异步的,这就要求咱们解决好代码运行的先后问题。

若没有解决好,在运行过程中通常会呈现的情况是某后果变量为undefined。

最根底的解决方案是在回调函数中定义回调函数,若回调过长会呈现回调天堂,大大降低代码可浏览性。

较好的解决方案为应用promisepromise配合es6的async函数

有些API也提供链式调用的计划。