javascript
arcgis api for javascript 入门教程[5] 再讲数据——map类之底图与高程 -凯发ag旗舰厅登录网址下载
【回顾】前4篇交代了jsapi的背景、资源如何获取,简介了数据与视图分离的概念与实现,剖析了页面的大骨架。
这篇开始,讲map类。
转载注明出处,博客园/csdn/b站/知乎:秋意正寒
目录:https://www.cnblogs.com/onsummer/p/9080204.html
map类继承自accessor,有子类webmap , webscene。
这玩意儿是什么?通俗说,map就是一张地图,它属于数据部分,需要用视图展示它。
视图,在jsapi中,就是view,它负责把map描绘出来,用webgl的手段。
那么,map类如何组织数据呢?用图层。对,图层,layer!(至于layer那是后话了,我们先谈map数据的组织)
所以,你看到的很多map类的方法,都是控制图层的。
属性 | 方法 |
|
|
方法都很简单,自行查阅官方api就知道怎么写了,我重点讲一下属性,尤其是ground属性、basemap属性。
有人说为什么不讲layers和alllayers?图层固然是map的组成,但是这里是说map,数据的承载体——layer,还要等到下篇再说。
这个词直译是基础地图,我通俗地翻译为底图。就是最底下的图,像桌布一样。
2.1 basemap类
本质上,basemap还是图层。
basemap是basemap类型的,basemap类型的对象是如何创建的呢?
当然还是由服务器上的各种数据服务创建的,查阅basemap的构造器,其实basemap就是一堆堆的“layer”组成的。
如果需要自定义底图,可以深入研究研究basemap类如何实例化。
2.2 预置basemap
如果对自定义底图没什么功夫,其实可以直接用官方给的预置图层,只需将basemap属性赋予几个预置的字符串即可。
例如:
var map = new map({basemap: "streets",ground: "world-elevation"} );basemap就指定为街道图了(打开好像是openstreetmap)
官方预置了十几种底图,有兴趣可以去看看。
这单词直译是地面,形象翻译为高程。与底图一样,允许你使用字符串的方式,使用官方给的预置世界高程信息。
如果有更精确的或者符合自己坐标系需要的高程信息,这可能就需要通过实例化ground对象来赋值了。
实际上,ground类,也是由图层构成的。
它是由服务器上的高程影像服务组成的,前端这边叫高程图层——elevationlayer类。
例如:
var worldelevation = elevationlayer({url: "//elevation3d.arcgis.com/arcgis/rest/services/worldelevation3d/terrain3d/imageserver" }); var customelevation = elevationlayer({url: "http://my.server.com/arcgis/rest/service/myelevationservice/imageserver" }); var map = new map({basemap: "topo",ground: new ground({layers: [ worldelevation, customelevation ]}) });实际上,map就是个图层容器,只不过官方对各种图层的功能进行了分类。
底图做底,高程作高度信息,还有其他的图层,展示各种地理信息,构成了三层式体系。
下一节,我就简单说说“其他的图层”,有哪些,怎么创建,这可能要提及服务端了。
plus:要断更比较长的时间,暂时把这个写上,见谅。
转载于:https://www.cnblogs.com/onsummer/p/9091052.html
总结
以上是凯发ag旗舰厅登录网址下载为你收集整理的arcgis api for javascript 入门教程[5] 再讲数据——map类之底图与高程的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得凯发ag旗舰厅登录网址下载网站内容还不错,欢迎将凯发ag旗舰厅登录网址下载推荐给好友。
- 上一篇:
- 下一篇: