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. Cloudera Error: "Failed to handle Heartbeat Response"

    在使用cloudera manager安装CDH过程中,发现安装进程卡在给某个slave机分配parcel上. 查agent的log发现如下错: ...MainThread agent ERROR F ...

  2. [golang学习] 在idea中code & debug

    [已废弃]不需要看 idea 虽然审美倒退了n年. 不过功能还是相当好用的. idea 的go插件堪称最好的go ide. 1. 语法高亮支持 2. 智能提示 3. 跳转定义(反跳转回来) 4. 集成 ...

  3. 存储过程中的where in实现

    在项目中使用Npoco时发现where in查询总是不能起作用.寻觅了许久终于找到解决方案,特此记录下: ) Set @p='CoreRole,CorePassword,CoreOnlineUser' ...

  4. iOS菜鸟总结1

    我从第一次接触OC,我觉得想要学好就必须有提前的知识的储备(比如c,java).这样就可更好了解面向对象的这一思想.学起来就不是很吃力了,本来OC就是比较难学的语言.工欲善其事,必先利其器,Xcode ...

  5. Oracle基础 TO_CHAR函数参考(转)

    Postgres 格式化函数提供一套有效的工具用于把各种数据类型(日期/时间,int,float,numeric)转换成格式化的字符串以及反过来从格式化的字符串转换成原始的数据类型. 注意:所有格式化 ...

  6. MySQL Internal - InnoDB存储引擎(行结构)

    InnoDB行存储的三个组成部分(说明: F字符表示列的数量) 名称(Name) 大小(Size) Field Start Offsets (F*1) or (F*2) bytes Extra Byt ...

  7. C#中Invoke和BeginInvoke的区别

    1.Invoke() 调用时,Invoke会阻止当前主线程的运行,等到 Invoke() 方法返回才继续执行后面的代码,表现出“同步”的概念. 2.BeginInvoke() 调用时,当前线程会启用线 ...

  8. IDE改为AHCI后系统无法启动的解决办法

    1.intel CPU 一.找到HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msahci,“Start”项值改为“0”. 二.重启,进入b ...

  9. xe5 android tts(Text To Speech)

    xe5 android  tts(Text To Speech) TTS是Text To Speech的缩写,即“从文本到语音”,是人机对话的一部分,让机器能够说话. 以下代码实现xe5 开发的文本转 ...

  10. [转]15 个顶级 HTML5 游戏引擎

    本文转自:http://www.open-open.com/news/view/13874db 1) HTML5 Game Engine Construct 2 is a leading high q ...