内容如上,截图自ESRI官网,连接:ArcGIS API for JavaScript 4.2
【Get Started】
类似于绪论一样的东西,抽取了最需要关注的几个例子。如:加载Map和View,加载layers,使用弹出窗口,视觉化,与使用窗口小部件。(wtf居然没有分析你想搞事情啊web除了展示难道不应该有()&&*……@)
【Mapping and Views】 (点击进入我写的章节详细介绍)
最基础的,知道地图和视图的区别,能使用2D和3D地图,对地图的布局有一定的了解,对地图的动画也有小小的使用示例。还介绍了2D3D视图同步、鹰眼、指北针等功能。这一章是最基础的了,其中第一小节介绍了入口函数的参数意义。
【Layers】
这一章很庞大,貌似和地理数据有关。按顺序读下去:
支持多图层叠加显示
支持要素图层、场景图层(直接把影像拔高,推出了一个盒子形状的立体物件的场景图层)、矢量瓦片图层(这个很厉害啊)、影像图层、流图层、CSV图层、OpenStreet地图图层、Web瓦片图层、点云图层(这个更厉害1.1亿的激光雷达点云数据都能加载进来)
其中,对MapImageLayer和ImageryLayer有着重的介绍,前者不知道是什么东西,后者就是影像图层(栅格图层)。这也是数据中最关键的了。
最后我想问一下:图层这种东西,是怎么创建的(查API应该可以查到如何创建实例)?数据又如何从硬盘中获取?需要服务器环境吗?(尚待解决)
【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那么强悍,不过对于基础的业务倒也足够。
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。