第六章 应用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。
最根底的解决方案是在回调函数中定义回调函数
,若回调过长会呈现回调天堂,大大降低代码可浏览性。
较好的解决方案为应用promise
或promise配合es6的async函数
。
有些API也提供链式调用
的计划。