ArcGIS API for JavaScript中的类是按照模块组织的,主要包含esri、esri/geometry、esri/renderers、esri/symbols、esri/symbols、esri/dijit、esri/dijit/editing、esri/layers、esri/tasks、esri/toolbars、esri/virtualearth模块,在开发过程中,使用dojo.require("类名")便可将类引入,除了esri/arcgis/Portal模块,类和模块之间是一对一的关系。按照功能模块分类,ArcGIS API for JavaScript组成如图

  实现地图图层功能的主要是Map类、Layer类,Map类是最核心的类,其它控件或多或少的都将Map对象作为其参数,它主要用于呈现地图服务、影像服务等。一个地图对象需要通过一个DIV元素才可以添加到页面中,通常地图控件的宽度和高度是通过DIV容器初始化的。Map对象不仅仅用来承载地图服务和GraphicsLayer同时还可以监听用户在地图上的各种操作事件,并做出响应,Map对象提供了非常丰富的事件,使用这些事件,就可以让地图跟用户随心所欲的去交互。Layer类是图层类,用来添加相关图层,比如WMS服务、热点图(HeatMap)、Bing地图、OpenStreetMap、GeoRSS、KML数据等,其类继承结构如图:

其中,ESRI.ArcGIS.Client.GraphicsLayer是一种客户端图层,用于绘制基于矢量数据的图形,并指定符号进行渲染。DynamicMapServiceLayer为抽象基类,表示动态图层类型。如果想创建自定义的动态图层类型,通过指向在线服务的URL访问动态生成的图片,那么就得实现DynamicMapServiceLayer。ESRI.ArcGIS.Client.Toolkit.DataSources.KmlLayer也是一种GraphicsLayer,其图形几何体由基于XML语法的数据源返回,可以是KML、KMZ或服务。TiledMapServiceLayer为抽象基类,表示切片/缓存地图服务图层。当需要自定义一个切片图层类型,并且缓存图片可以通过简单的URL直接引用时,应考虑实现TiledMapServiceLayer。

  实现图形绘制功能主要是Graphic类、Geometry类,Graphic对象表示可以在GraphicsLayer上绘制的图形要素,同时FeatureLayer中的要素、几何服务操作的参数等大多以Graphic对象来表示。Geometry类用于表示要素的图形,如点、多点、多义线、多边形等几何体及几何对象范围等。

  实现图形渲染功能的主要是Symbol、Renderer,Symbol用于渲染要素的图形,如点符号、线符号、填充符号等。Renderer渲染器定义了一种或多种符号以应用于一个GraphicsLayer。每个Graphic的符号所使用的符号取决于该Graphic的属性值。Renderer指定了属性值与符号之间的对应关系,主要方法有三种:SimpleRenderer,它是最简单的符号化渲染,对所有要素使用同样的符号;UniqueValueRenderer,使用唯一值符号化渲染,可以为具有特定属性值的Graphic定义符号;以及ClassBreaksRenderer,分级符号化渲染允许为特定属性值范围内的一组图形指定符号。

  查询检索功能是通过Task的方式实现的。使用Task需要首先实例化Task对象,注册Task完成、失败的监听事件;然后实例化Task参数对象,为必要属性赋值,发送请求;最后在Task完成事件处理函数中处理返回结果或在Task失败事件处理函数中处理错误信息。查询检索空间数据的方式主要有针对多个图层属性查询查询的FindTask、针对多个图层空间查询IdentifyTask、只针对一个图层QueryTask。

  几何操作功能是通过GeometryService对图形几何体的各种操作,如生成缓冲区、图形合并、图形相交、测距、多边形面积和周长测量、投影、空间关系等。调用esri.tasks.GeometryService方法便能够实现操作各种几何体。

  在线编辑功能是通过Feature Service客户端可访问要素的图形、属性、附件、关系,实现web编辑的能力。实现在线编辑数据必须存储在ArcSDE然后发布成Feature Service的服务。通过使用Edit接口的.applyEdits方法实现在线编辑便可对数据进行图形编辑、属性编辑、附件编辑。

  网络分析功能的实现要求地图服务中包含网络数据集(Network Dataset)并且启用了网络分析能力。通过网络分析可以实现最优路径分析、服务区域分析、临近设施分析。最优路径分析通过路径分析参数RouteParameters(如stop),调用RouteTask.solve()方法实现。服务区域分析通过ServiceAreaParameters,调用serviceAreaTask.solve(params,function(solveResult)方法。临近设施分析通过ClosestFacilityParameters方法,使用closestFacilityTask.solve(params,function(solveResult)分析最邻居设施。

  时态展示中主要有TimeSlider控件,用来播放历史变化、查看某个时间点、时间范围的数据状态,同时可使用tasks.Query支持将时间作为输入参数从而实现查询支持,使用renderer.attributeField用于展现数据在不同时间的空间位置变化进行符符号渲染。

  地理处理提供数据管理、数据转换和各种数据分析的工具和模型。GP可以实现REST API无法实现的功能,如数据转换/管理、空间分析等。在ArcGIS Server中,通过将GP工具、模型发布为GP服务,客户端API即可以Task方式调用。其有两种执行方式:execute,同步执行,等待结果;submitJob异步执行,通过onJobComplete事件获取执行结果。

  Dijit下的Widgets提供多种使用控件,比如Bookmarks、Attribute Inspector、InfoWindow等。

  ArcGIS API for JavaScript为用户快速地、简洁地创建交互式WebGIS应用提供了轻量级的解决方案。通过ArcGIS API for Javascript调用相关的方法便能够访问ArcGIS for Server中发布的地图服务其它资源(ArcGIS Online)嵌入到Web应用中进行相关的操作。

ArcGIS API for JavaScript介绍的更多相关文章

  1. ArcGIS API for JavaScript(2)-ArcGIS Server发布要素图层服务

    1.前言 上一篇该系列的文章我们主要讲了一下基础Web地图搭建,这篇我们主要讲一下ArcGIS Server发布服务,并且如何调用服务.将自己的数据加载到Web地图当中来,实现Web端浏览数据. 2. ...

  2. 创建ArcGIS API for JavaScript的第一个示例程序

    原文:创建ArcGIS API for JavaScript的第一个示例程序 在上一篇博客中已经介绍了如何搭建ArcGIS API for JavaScript开发环境,如果您还没有搭建好开发环境的话 ...

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

    内容如上,截图自ESRI官网,连接:ArcGIS API for JavaScript 4.2 [Get Started] 类似于绪论一样的东西,抽取了最需要关注的几个例子.如:加载Map和View, ...

  4. ArcGIS API for JavaScript 4.2学习笔记[1] 显示地图

    ArcGIS API for JavaScript 4.2直接从官网的Sample中学习,API Reference也是从官网翻译理解过来,鉴于网上截稿前还没有人发布过4.2的学习笔记,我就试试吧. ...

  5. ArcGIS API for JavaScript 4.2学习笔记[0] AJS4.2概述、新特性、未来产品线计划与AJS笔记目录

    放着好好的成熟的AJS 3.19不学,为什么要去碰乳臭未干的AJS 4.2? 4.2全线基础学习请点击[直达] 4.3及更高版本的补充学习请关注我的博客. ArcGIS API for JavaScr ...

  6. ArcGIS API for JavaScript开发环境搭建与发布以及基本功能实现

    1.背景介绍 ArcGIS API for JavaScript 咱这就不介绍了,具体可看ESRI中国的介绍:http://support.esrichina.com.cn/2011/0223/960 ...

  7. ArcGIS API for JavaScript 入门教程[0] 目录

    随时翻看. 转载注明出处,博客园/CSDN/B站:秋意正寒. Part 1 必看 ArcGIS API for JavaScript 入门教程[1] 渊源 你还真不一定知道这是啥.非得学吗? ArcG ...

  8. [ArcGIS API for JavaScript 4.8] Sample Code-Get Started-widgets简介

    [官方文档:https://developers.arcgis.com/javascript/latest/sample-code/intro-widgets/index.html] 一.Intro ...

  9. arcgis api for javascript本地部署加载地图

    最近开始学习arcgis api for javascript,发现一头雾水,决定记录下自己的学习过程. 一.下载arcgis api for js 4.2的library和jdk,具体安装包可以去官 ...

随机推荐

  1. 使用sharepreferce记录数组数据

    使用sharepreferce记录数组数据 /** * * sharepreference纪录news数据 * * */ private static final String name=" ...

  2. Hadoop学习笔记(3)——分布式环境搭建

    Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...

  3. java8中的Stream

    Collection.stream() / parallelStream() 1. Stream 1)Filter    stringCollection .stream().filter((s) - ...

  4. Oracle基础 锁

    一.锁 数据库是一个多用户使用的共享资源.当多个用户并发地存储数据时,数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性. 锁是实现 ...

  5. Java Script基础(八) Array数组对象

    一.Array数组 JavaScript中的数组也是具有相同数据类型的一个或者多个值得集合.用法和Java中的数组类似. Array对象的常用属性和方法: 属性: length:获取数组的长度: 方法 ...

  6. JS 鼠标事件大全

    一般事件 事件 浏览器支持 描述 onClick HTML: 2 | 3 | 3.2 | 4 Browser: IE3 | N2 | O3 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击 onDb ...

  7. cxGrid使用汇总1

    这些都不是原创,只是平时收集到资料然后整理的,有些可能百度一下到处都是而且还大同小异也有些不是很好找,现在贴出来希望给那些用到cxGrid的人会有所帮助 1. 去掉cxGrid中台头的Box 解决:在 ...

  8. 怒刷DP之 HDU 1160

    FatMouse's Speed Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Su ...

  9. 剑指Offer18 顺时针打印矩阵

    /************************************************************************* > File Name: 18_PrintM ...

  10. 转:怎么使用github(通俗易懂版)

    转:  https://www.zhihu.com/question/20070065 作者:珊姗是个小太阳链接:https://www.zhihu.com/question/20070065/ans ...