【回顾】前4篇交代了JsAPI的背景、资源如何获取,简介了数据与视图分离的概念与实现,剖析了页面的大骨架。

这篇开始,讲Map类。

转载注明出处,博客园/CSDN/B站/知乎:秋意正寒

目录:https://www.cnblogs.com/onsummer/p/9080204.html

1. Map类的属性与方法

Map类继承自Accessor,有子类WebMap , WebScene。

这玩意儿是什么?通俗说,Map就是一张地图,它属于数据部分,需要用视图展示它。

视图,在jsAPI中,就是View,它负责把Map描绘出来,用WebGL的手段。

那么,Map类如何组织数据呢?用图层。对,图层,Layer!(至于Layer那是后话了,我们先谈Map数据的组织)

所以,你看到的很多Map类的方法,都是控制图层的。

属性 方法
  • ground:高程,Ground类型
  • basemap:底图,Basemap类型
  • allLayers:全部平面图层,Collection类型
  • layers:全部可操作图层,Coolection类型
  • add():添加一个图层,可指定图层位置
  • addMany():添加多个图层,可指定位置
  • findLayerById():根据ID寻找图层
  • remove():移除指定图层
  • removeAll():移除全部图层
  • removeMany():移除多个图层
  • reorder():对某个图层进行重排序(id变换)

方法都很简单,自行查阅官方API就知道怎么写了,我重点讲一下属性,尤其是ground属性、basemap属性。

有人说为什么不讲layers和allLayers?图层固然是Map的组成,但是这里是说Map,数据的承载体——Layer,还要等到下篇再说。

2. 属性:basemap详解

这个词直译是基础地图,我通俗地翻译为底图。就是最底下的图,像桌布一样。

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)

官方预置了十几种底图,有兴趣可以去看看。

3. 属性:ground详解

这单词直译是地面,形象翻译为高程。与底图一样,允许你使用字符串的方式,使用官方给的预置世界高程信息。

如果有更精确的或者符合自己坐标系需要的高程信息,这可能就需要通过实例化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 ]})
});

4. 总结

实际上,Map就是个图层容器,只不过官方对各种图层的功能进行了分类。

底图做底,高程作高度信息,还有其他的图层,展示各种地理信息,构成了三层式体系。

下一节,我就简单说说“其他的图层”,有哪些,怎么创建,这可能要提及服务端了。

plus:要断更比较长的时间,暂时把这个写上,见谅。

转载于:https://www.cnblogs.com/onsummer/p/9091052.html

ArcGIS API for JavaScript 入门教程[5] 再讲数据——Map类之底图与高程相关推荐

  1. ArcGIS API for JavaScript 3.23汉化(下)

    ArcGIS API for JavaScript 3.23汉化(下) 4更为具体 一.Default API configurations 默认API配置 三.Retrieve data from ...

  2. 地理信息系统(GIS)系列——ArcGIS API for JavaScript 3.9(1)

    Visual Studio 智能提示配置:将以下 JavaScript 文件引入项目中 arcgis_js_v39_sdk\arcgis_js_api\sdk\jshelp\jsapi_vsdoc12 ...

  3. 13 ArcGIS API for JavaScript开发入门文档

    写在前面 这篇文章写在我用ArcGIS API for JavaScript(后面统称为"ArcGIS JS API")开发了两年项目后的某一天夜里.写这篇文章主要是两个目的吧,第 ...

  4. ArcGIS API for JavaScript心得体验

    首发GIS派:ArcGIS API for JavaScript心得体验 学习和使用ArcGIS API for JavaScript开发差不多有两年了吧,跌跌撞撞断断续续也做了几个小项目,学习之路相 ...

  5. GISer从零开始学习ArcGIS API for JavaScriptArcGIS Online教程(三)免费注册和使用ArcGIS Online

    GISer从零开始学习ArcGIS API for JavaScript&ArcGIS Online教程(三)注册和使用ArcGIS Online 上一节我们谈到了arcgis api的导入和 ...

  6. GISer从零开始学习ArcGIS API for JavaScriptArcGIS Online教程(二)第一个地图应用

    GISer从零开始学习ArcGIS API for JavaScript&ArcGIS Online教程(二)第一个地图应用 从这篇开始就正式开始使用ArcGIS API for JavaSc ...

  7. Arcgis api for JavaScript下载及部署(IIS和Tomcat)

    目录 一,各版本下载地址 二,ArcGIS API For JavaScript3.17本地部署(IIS) 2.1 修改相应的js文件(2个文件) 2.2 将修改好的函数库复制到指定位置 2.3 测试 ...

  8. ArcGIS API for JavaScript :简介与快速上手

    一.简介 子路曰:"卫君待子而为政,子将奚先?"子曰:"必也正名乎!" 孔子认为,为政最先要做的事情是正名,名不正则言不顺. 语言是上天赋予人类的神奇能力,而& ...

  9. 初学ArcGIS API for JavaScript

    初学ArcGIS API for JavaScript 对于初学者来说,关于esri提供的一些样式和dojo自带的一些样式还是需要有一定的了解,这块在<WebGIS开发从基础到实践>讲解的 ...

最新文章

  1. 数据结构实验之链表二:逆序建立链表
  2. appium---【Mac】Appium-Doctor提示WARN:“ ios_webkit_debug_proxy cannot be found”解决方案...
  3. V3S中换2.0寸LCD时MINIGUI无显示的问题的解决过程
  4. 产品经理如何提升自己的配色能力
  5. setting an array element with a sequence.
  6. 如何使用CPU来加速你的Linux命令
  7. 池化层在全连接层之间吗,了解最大池化层之后的全连接层的尺寸
  8. 【objectMapper实体转换异常】 com.fasterxml.jackson.databind.exc.MismatchedInputException
  9. 【2019牛客暑期多校训练营(第六场)- D】Move(随机化二分)
  10. 【C++面向对象】类的数据成员:绑定、布局和存取
  11. 江西职业教育集团计算机应用竞赛,【喜报】江西工业职院电子与信息工程学院学生在计算机应用竞赛钟喜获佳绩...
  12. redis-cli批量删除时的坑
  13. 如何使用无线连接来使Android调试手机
  14. 持久化存储-对象序列化(摘自网络)
  15. skype api java版 打电话
  16. 复现SCI图表-ggplot做花瓣图
  17. A-Z,所有汽车品牌完整json格式
  18. 计算机科学与技术本科相当于计算机几级,软件工程的学生毕业后计算机等级算几级?...
  19. PHP ob缓冲浅析与理解
  20. dg怎么了(最近dg怎么了)

热门文章

  1. 使用gparted live分区工具对VMware及ESXI(vsphere)虚拟机进行根目录扩容(可视化界面操作)
  2. 阿里巴巴矢量图标库iconfont使用教程
  3. Scala 中将方法、函数、函数式编程和面向对象编程关系分析图
  4. Python3比较运算符
  5. Java ServletContextListener监听器的使用
  6. Freemarker 页面静态化技术使用入门案例
  7. python自己创建模块_创建并发布自己的python模块
  8. su user oracle does not exist,Linux下oracle用户无法su切换的异常【终极解决方案_生产环境亲测有效】...
  9. 上海大华条码称代码_银豹收银之大华条码秤传称设置
  10. Tomcat部署的三种方式