ArcGIS API for JavaScript 4.2学习笔记[9] 同一种视图不同数据(Map)同步

本例子核心:对MapView对象的map属性值进行替换即可达到更改地图数据的效果。

这个例子用的不是Map对象了,而是用的发布在服务器上的专题地图(WebMap)来加载到MapView上进行显示。
在html标签中,使用了section标签,不过没什么稀奇的,就把仨按钮放一块而已。
先给出预览图

三张专题地图:失踪人口密度分布、难民迁徙路线、2015年欧洲来港者。
这个东西很有用,尤其是在展示

ArcGIS API for JavaScript 4.2学习笔记[10] 2D添加指北针widget、视图保存、视图padding(第二章完结)

这几个例子是第二章除了入门之外比较简单的几个,就做个合集,把最核心的代码(第二参数)和 引用放上来即可,不作多解释。
2D地图添加指北针widget
2D地图一般修正方向为正北方就需要这个widget。
引用:[
"esri/Map",
"esri/views/MapView",
"esri/widgets/Compass",
"

ArcGIS API for JavaScript 4.2学习笔记[11] 官方第五章Popups(弹窗)概览与解释

直接跳过第三第四章了,第三章Layer和第四章可视化,怎么说呢,Layer是组织数据的,是Map的属性之一。可视化属于符号化编程,暂时不看。
第五章是对数据、结果的显示,类似于alert()、.NET的MessageBox,弹窗嘛。
官方的解释很清楚了,我翻译过来,再加上自己的一些理解。
Popup,是Accessor的 一个子类,它的实例是弹窗对象。像这样

是不是很熟悉?对,在老版本

ArcGIS API for JavaScript 4.2学习笔记[12] View的弹窗(Popup)

看本文前最好对第二章(Mapping and Views)中的Map和View类有理解。
视图类有一个属性是Popup类型的popup,查阅API知道这个就是视图的弹窗,每一个View的实例都有一个popup。
这个popup属性在View对象实例化的时候就实例化了的,即随着View的出生,它也会出生,它拥有默认的样子,它显示的文字也是默认的样式。
我们看看Popup这个类:

直接继承自Acce

ArcGIS API for JavaScript 4.2学习笔记[13] Layer的弹窗(PopupTemplate)

上一篇文章中讲到Popup是一个弹窗,是View对象的默认内置弹窗,并且在View对象构造时就顺便构造了。
那么这个PopupTemplate是什么呢?
后半截单词Template是“模板”的意思,我最初理解就是可以定制的弹窗。仔细阅读API ref后给出更为准确的定义:

PopupTemplate是一个针对Layer和Graphic的弹窗,它与Popup最大的不同的是作用对象不同(P

ArcGIS API for JavaScript 4.2学习笔记[14] 弹窗的位置、为弹窗添加元素

这一节我们来看看弹窗的位置和弹窗上能放什么。
先一句话总结:
位置:可以随便(点击时出现或者一直固定在某个位置),也可以指定位置
能放什么:四种,文字、媒体(图片等)、表格、附件。
【Part I 位置】
这一例子和下一个例子中,CDN的引用多了一行
<link rel="stylesheet" href="https://js.arcgis

ArcGIS API for JavaScript 4.2学习笔记[15] 弹窗内容的格式与自定义格式

先看结果截图吧(不看过程可以直接看总结,在文末):

随便点击了两个城市斑块,出现结果如图。
我来解读一下这结果和以前的有什么不同:
这个例子使用了PopupTemplate,数据是Layer(使用PortalID创建的Layer)。
但是我们看到图中有个地方不同:当Percent change is这个东西是负数的时候,就是红色+红色下箭头,反之则是绿色字+绿色上箭头。
实际上,这两个箭头是两个

ArcGIS API for JavaScript 4.2学习笔记[16] 弹窗自定义功能按钮及为要素自定义按钮(第五章完结)

这节对Popups这一章的最后两个例子进行介绍和解析。
第一个【Popup Actions】介绍了弹窗中如何自定义工具按钮(名为actions),以PopupTemplate+FeatureLayer的形式测量要素的长度为例子进行介绍。
第二个【Custom popup actions per feature】则是上一个的升级,如果说上一个例子的功能是写死的,那么这个例子就把这个功能写活了。什

ArcGIS API for JavaScript 4.2学习笔记[17] 官方第七章Searching(空间查询)概览与解释

空间分析和空间查询是WebGIS有别于其他Web平台的特点。到这一章,就开始步入空间分析的内容了。
【Search widget】
介绍空间查询的核心小部件“Search”。
【Search widget with multiple sources】
在多种信息源中进行空间搜索。
【Query features from a FeatureLayer】
这个是在要素图层中进行查询。

ArcGIS API for JavaScript 4.2学习笔记[18] 搜索小部件

这个例子很简单,作为开学后(暴露出学生党的本质)的开胃菜是再合适不过了。
不过,博主提前警告一下:接下来的例子会相当的长、烦、难。我还会用“引用”-“函数参数骨架”-“逐级分解代码”的模式,从上往下解读一些更难的AJS代码。
现在上课!
空间查询,是GIS的一个重头戏,除了基础定义(坐标系统、投影、符号等)、数据准备外,紧接着就是空间查询和下一章的空间分析。
对于AJS的小部件,我们已经

ArcGIS API for JavaScript 4.2学习笔记[19] 搜索小部件——使用更多数据源

上一篇中提到,空间搜索小部件是Search这个类的实例化,作为视图的ui属性添加进去后,视图就会出现搜索框了。
这节的主体代码和上篇几乎一致,区别就在上篇提及的sources属性。
先看看结果:


由于不太清楚要素图层里有什么东西,随便输了个字母匹配,结果如图,中央出现了一个图案并弹窗。
开始讲课!

给出引用require(
[
"esri/Map",

ArcGIS API for JavaScript 4.2学习笔记[20] 使用缓冲区结合Query对象进行地震点查询【重温异步操作思想】

这个例子相当复杂。我先简单说说这个例子是干啥的。
在UI上,提供了一个下拉框、两个滑动杆,以确定三个参数,使用这三个参数进行空间查询。这个例子就颇带空间查询的意思了。
第一个参数是油井类型,第二个参数是油井的缓冲半径,第三个参数是地震级别。
给定油井的类型,给定油井的缓冲半径(缓冲区分析生成),给定地震级别,就能在油井附近以这个缓冲半径为圆搜索出符合给定地震级别的地震点。
这个例子是干嘛的呢?