ArcGIS API for JavaScript 4.2学习笔记[5] 官方API大章节概述与内容转译

ArcGIS API for JavaScript 4.x:
从3.x版本升级到4.x,变化比较大,学习、开发体验也会不一样。

本系列是转载至博客园原创作者-秋意正寒-致敬!

原地址:https://www.cnblogs.com/onsummer/p/6363915.html


img

内容如上,截图自ESRI官网,连接:ArcGIS API for JavaScript 4.2(可能会跳转到4.3或者更高最新版本,如果有需要,到CSDN可以下载到4.2的离线文档)

【Get Started】

类似于绪论一样的东西,抽取了最需要关注的几个例子。如:加载Map和View,加载layers,使用弹出窗口,视觉化,与使用窗口小部件。(wtf居然没有分析你想搞事情啊web除了展示难道不应该有()&&*……@)好吧,4.2刚出的时候分析功能确实不太全。

【Mapping and Views】

最基础的,知道地图和视图的区别,能使用2D和3D地图,对地图的布局有一定的了解,对地图的动画也有小小的使用示例。还介绍了2D3D视图同步、鹰眼、指北针等功能。这一章是最基础的了,其中第一小节介绍了入口函数的参数意义。

【Layers】

这一章很庞大,和地理数据有关。按顺序读下去:

支持多图层叠加显示

支持要素图层、场景图层(直接把影像拔高,推出了一个盒子形状的立体物件的场景图层)、矢量瓦片图层(这个很厉害啊)、影像图层、流图层、CSV图层、OpenStreet地图图层、Web瓦片图层、点云图层(这个更厉害1.1亿的激光雷达点云数据都能加载进来)

其中,对MapImageLayer和ImageryLayer有着重的介绍,前者不知道是什么东西,后者是影像图层(栅格图层)。这也是数据中最关键的了。

最后我想问一下:图层这种东西,是怎么创建的(查API应该可以查到如何创建实例)?数据又如何从硬盘中获取?需要服务器环境吗?(尚待解决)

回答上一句提到的问题。图层通过ArcGIS Server发布的各种服务创建,也可以通过Online或者Portal上的ID创建。

【Visualization】

这一章是符号的定制和色彩、样式的管理,主要是视觉方面的工作,在Web上不可能弄得很丑,Web最重要的功能就是“演示”,可视化这章就是为此而生。这一章内容繁多但是不难,简单看过去就是自定义符号、色彩设置、色带设置等,和桌面版的差不多。短时间内没法看完,以后待功能性章节完成学习后再进行攻读。

【Popups】

Popups意思为弹出窗口,第一个就以坐标的显示为例子。

弹出窗口也是一个相当基础的功能,因为有的查询功能的结果就需要用这种输出方式。

紧接的是:使用弹出小窗口的模板、对popups的位置进行固定(Dock,上下左右相对固定)

然后是在popups上加需要的内容,官方演示了表格、多媒体、文档和图表。

最后,在弹出窗口上也是可以添加按钮的(官方演示了Zoom功能和测量功能),也可以定制自己的功能(跳转到别的地方什么的)

【Graphics】

这章简单,和GDI差不多的东西,往视图中添加图形。支持2D和3D视图添加。

【Searching】

这章就是空间查询了。不过是基于widget的查询,底层似乎没给出。

使用Search widget可以查询,这功能在国内的地图厂商上都有,并且他们很像。不同的是,这是WebGIS,而不是商用GIS,功能是可以自己定制的。

当然,也可以对3D、2D地图进行筛选查询、点击查询。

ESRI也提供了最古老的方式——在表格上显示查询结果。

【Analysis】

这一章是空间分析,虽然不及Desktop上的ArcMap和ArcGIS Pro那么强悍,不过对于基础的业务倒也足够。

ESRI已经说了,空间分析仍会在未来的版本中发布更新以与3.x产品线追平。

WebGIS的空间分析主要是:缓冲区分析和网络分析。例子中的网络分析是求解最短路径,比桌面版的操作友好多了(见本人的ArcGIS 网络分析专辑)。

此外官方还提供了:可视域分析、热点分析、查询高程(点高程变化和线路海拔变化等)。

【Widgets】

这属于UI的定制,大布局上可以用第三方JS库,在地图上的UI控件就交给ESRI吧。

粗看下去,主要有:

Home按钮控件、图层列表控件、图例控件、定位控件、地图打印到本地磁盘控件、追踪定位控件(平面的)、导航定位控件(用于导航)、快速布局控件(widget太多了可以用一个东西管理,view对象的ui属性)

ESRI强大到:widget似乎是可以自定义的(支持第三方JS库!如Angular、React),我看到了custom的字样,但是没有仔细往下看,因为提供的控件和功能已经满足大多数的需求了。甚至,widget还可以给它弄个皮肤。

颤抖吧人类。

【More 3D】

这章跟数字高程模型有关,能使用大地高程进行3D可视化,并控制摄像机的位置和角度。

同时,也可以把高程信息叠加到要素类上,进行高程3D显示。

我还看到了一个好玩的东西:控制太阳(就是控制日照角度,根据时间),其实就是环境的控制。

AJS的3D引擎是可以拓展的,甚至提及了Threejs公共3D引擎库(Threejs差评,文档忒少难读)。

ESRI提供了WebGL的检测功能,因为3D的支持需要WebGL,如果浏览器不支持,那肯定是不行的。

【Other】

这里是一些杂项,如从服务器上获取资料、许可,连接服务器等。


API从esri这个大类分下去,有以下一级模块及与一级模块并列的类:

类:Basemap、Camera、Color、config、Graphic、Ground、kernel、PopupTemplate、request、Viewpoint、WebMap、WebScene

一级模块:/core /geometry /identity /layers /portal /renderers /support /symbols /tasks /views /webmap /webscene /widgets

一些重要的二三级模块展示如下

/core: /accessorSupport /workers

/geometry: /support

/layers: /support

/renderers: /smartMapping/statistics /smartMapping/symbology /support

/symbols: /support

/tasks: /support

/views: /3d /layers /ui

/widgets: /support

对于API Reference,等用到一定时候会做类图,未完待续。其实官方的API已经很不错了,但是就是没有中文版,需要用过的人去做一些工作。

最后,善用API Reference。


关注公众号
文章目录