1 基本概念

1.1 Javascript介绍

  Javascript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web 页面中连接多个对象,与Web客户交互作用,从而可以开发客户端的应用程序等。它是通过嵌入或调入到标准的HTML 语言中实现的。它的出现弥补了HTML语言的缺陷,是Java与HTML折衷的选择,具有以下几个基本特点:

  1、是一种脚本语言

  Javascript 是一种脚本语言,它采用小程序段的方式实现编程。像其它脚本语言一样,Javascript 同 样也是一种解释性语言,它提供了一个简易的开发过程。它的基本结构形式与 C、C++等类似,但它不像这些语言一样,需要先编译,而是在程序运行过程中被逐行地解释。它与 HTML 标识结合在一起, 从而方便用户的使用操作。

  2、基于对象的语言。

  Javascript 是一种基于对象的语言,同时以可以看作一种面向对象的开发语言。这意味着它能运用自己已经创建的对象。

  3、简单性

  Javascript 的简单性主要体现在:首先它是一种基于 Java 基本语句和控制流之上的简单而紧凑的设计,从而对于学习 Java 是一种非常好的过渡。其次它的变量类型是采用弱类型,并未使用严格的数据类型。

  4、安全性

  Javascript 是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器,不允许对 网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失。

  5、动态性

  Javascript 是动态的,它可以直接对用户或客户输入做出响应,无须经过 Web 服务程序。它对用户的反映响应,是采用以事件驱动的方式进行的。比如按下鼠标、移动窗口、选择菜单等都可以视为事 件。当事件发生后,可能会引起相应的事件响应。

  6、跨平台性

  Javascript 是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持 Javascript的浏览器就可正确执行。从而实现了“编写一次,走遍天下”的梦想。

1.2 Dojo介绍

  Dojo 是一个强大的面向对象 Javascript 框架。主要由三大模块组成:Core、Dijit、DojoX。其中Core提供 Ajax、events、packaging、CSS-based  querying、animations、JSON 等相关操作API。Dijit 是一个可更换皮肤,基于模板的 WEB UI 控件库。DojoX 包括一些创新/新颖的代码和控件:DateGrid、charts、 离线应用、跨浏览器矢量绘图等。

  Dojo 的特点可从下面几部分说起:

  1、Dojo是一个纯 Javascript 库,后台只要提供相应的接口就能够将数据以 Json 的格式输出给前台。

  2、Dojo自身定义了完整的函数库,屏蔽了浏览器的差异。

  3、Dojo自身定义了界面组件库,其组件代码采用了面向对象的思想,便于继承及扩展。

  4、当对前端界面联动需求较为复杂的时候,基于dojo 的页面组件将是首选,因为其可以将界面中某一个具有共性的区域抽象出来,封装这一区域的界面行为以及数据,可以用搭积木的方式完成复杂页面的开发。

1.3 REST介绍

  REST(Representational State Transfer)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。REST 本身并不涉及任何新的技术,它基于HTTP协议,比起 SOAP 和 XML-PC来说它更加地简洁、高效,现在越来越多的大型网站正在使用REST风格来设计和实现。

  REST 最突出的特点就是用URI 来描述互联网上所有的资源,Roy  Fielding博士通过观察互联网的运作方式对其进行了抽象,他认为:设计良好的网络应用表现为一系列的虚拟“网页”,或者说这些虚拟网页就是资源状态的表现(Representational);用户选择这些链接导致下一个虚拟的“网页”传输到用户端展现给使用的人,而这正代表了资源状态的转发(State  Transfer)。

  REST 主要有以下的特点:

  1、资源通过URI 来指定和操作

  2、对资源的操作包括获取、创建、修改和删除资源,这些操作正好对应 HTTP 协议提供的 GET、 POST、PUT 和  DELETE 方法

  3、连接是无状态性

  4、能够利用Cache机制来提高性能

1.4 JSON介绍

  使用REST API进行信息传输的时候,有必要了解下其数据传输格式,这种格式称之为JSON(Javascript Object Notation)。

  JSON 是一种轻量级的数据交换格式,易于人阅读和编写。JSON 能够描述四种简单的类型(字符串、数字、布尔值及 null)和两种结构化类型(对象及数组)。JSON 对象由一对大括号(以“{”开始, 以“}”结束)包围着零个或多个 Key/Value 对(或者是成员)。Key是 string类型的,每个Key后面跟一个冒号,把Key与Value 分开,逗号则隔开紧跟在值后的另一个Key。下面就是一个JSON对象的例子:

  

var xxx={
    "name": "xxx",
    "company": "xxx", "age": 26,
    "married": false, "friends": [
    { "name": "A", "age": 30 },
    { "name": "B", "age": 25 }
    ]
}

  在访问缓存服务的时候,可能会看到下面的 JSON 对象:

var lods = [
{ "level": 0, "resolution": 0.010986328125, "scale": 4617149.97766929 },
{ "level": 1, "resolution": 0.0054931640625, "scale": 2308574.98883465 },
{ "level": 2, "resolution": 0.00274658203125, "scale": 1154287.49441732 },
{ "level": 3, "resolution": 0.001373291015625, "scale": 577143.747208662 },
{ "level": 4, "resolution": 0.0006866455078125, "scale": 288571.873604331 }
];

  相信你对这个含义已经知道了,在后面的学习中,我们会碰到许多和 JSON 相关的内容。

1.5 ArcGIS API for Javascript介绍

1.5.1 ArcGIS API for Javascript介绍

  ArcGIS API for Javascript  是由美国  Esri  公司推出,跟随 ArcGIS 9.3 同时发布的,是 Esri 基于 dojo框架和 REST 风格实现的一套编程接口。通过 ArcGIS API for Javascript 可以对 ArcGIS for Server 进行访问,并且将 ArcGIS for Server 提供的地图资源和其它资源(ArcGIS Online) 嵌入到 Web 应用中。

1.5.2 ArcGIS API for Javascript主要特点

  1、空间数据展示:加载地图服务,影像服务,WMS 等。

  2、客户端 Mashup:将来自不同服务器、不同类型的服务在客户端聚合后统一呈现给客户。

  3、图形绘制:在地图上交互式地绘制查询范围或地理标记等。

  4、符号渲染:提供对图形进行符号化,要素图层生成专题图和服务器端渲染等功能。

  5、查询检索:基于属性和空间位置进行查询,支持关联查询,对查询结果的排序、分组以及对属性数据的统计。

  6、地理处理:调用 ArcGIS for Server 发布的地理处理服务(GP 服务),执行空间分析、地理处理或其他需要服务器端执行的工具、模型、运算等。

  7、网络分析:计算最优路径、临近设施和服务区域。

  8、在线编辑:通过要素服务编辑要素的图形、属性、附件,进行编辑追踪。

  9、时态感知:展示、查询具有时间特征的地图服务或影像服务数据。

  10、影像处理:提供动态镶嵌、实时栅格函数处理等功能。

  11、地图输出:提供多种地图图片导出和服务器端打印等功能。

1.6 ArcGIS for Server服务类型

  服务简单的来说就是 ArcGIS for Server 发布的 GIS 资源,不同的资源可以被发布为不同的服务,不同的服务具有不同的功能,详细信息如下表:

 

服务类型

使用的 GIS资源

功能描述

2D地图服务

2D 地图文档  (.mxd, .pmf)

显示,查询和分析2D地图,支持动态的和缓存的地图服务

地理编码服务

地址定位器 (.loc, .mxs, SDE batch locator)

在服务器上执行地址匹配

空间数据服务

数据库连接文件 (.sde) 或者文件数据库或者引用版本化数据库数据的地图文 档

提供对  Geodatabase 的访问、查询、更新和管理

几何服务

不需要 GIS 资源

没有 GIS 资源的服务,提供对几何图形的操作,如简化,投影等

地理处理服务

执行成功的地理处理工具

提供空间分析和地理处理服务

3D地图服务

3D 地图文档  (.3dd, .pmf)

显示,查询和分析 3D 地图

影像服务

栅格数据集、 镶嵌数据集、 栅格图层、镶嵌图层

提供对栅格、影像数据的访问服务

搜索服务

文件夹或者数据库连接文件(.sde)

提供对企业级 GIS 数据资源的检索服务。 目前叧能在 ArcGIS for Desktop 软件中使用该服务,该服务只能在桌面中使用

 

 

1.6.1主要服务具备的能力

  上面我们介绍了服务对应的资源类型和服务具备的能力,不同的服务具有不同的能力以及支持不同的操作,在使用 ArcGIS API for Javascript 的时候,其实就是在使用这些 REST API 使用这些服务对外的能 力,了解每种服务的具体功能,在开发的时候就可以根据需求做到游刃有余。

  发布好一个地图服务时,我们进入到 ArcGIS for Server 的管理页面,可以看到非常详细的信息,下图是我发布的一个叫做 JsMap的2D地图动态服务,在功能选项卡中可以看到该服务可以支持的功能以及每种功能支持的操作。

1.6.1.1 2D地图服务

 

服务能力

功能描述

Mapping

提供对地图文档内容的显示,访问等。地图服务始终具备该功能。

FeatureAccess

提供对地图上矢量要素的访问和编辑。

Mobile DataAccess

允许从移动设备访问地图文档中的数据。

WMS

使用符合 OGC WMS 标准服务提供的操作。

KML

允许使用 KML 服务规范提供的操作。

NetworkAnalysis

使用网络分析扩展模块解决交通网络的分析问题。

WFS

使用符合 OGC WFS 标准的服务提供的操作。

WCS

创建符合 OGC WCS 标准的服务提供的操作。

Schematics

提供对逻辑示意图的查询和编辑

 1.6.1.2 影像服务

服务能力

功能描述

Imaging

提供对栅格数据集或镶嵌数据集的访问,包括像素值、属性、元数据和波段。影像服务自动具备该能力。

JPIP

当使用  JPEG  2000文件和配置来自 ITTVIS 的JPIP服务器时提供 JPIP流能力。

WMS

使用符合 OGC WMS 标准的服务提供的操作。

WCS

使用符合 OGC WCS 标准的服务提供的操作。

1.6.1.3 3D地图服务

服务能力

功能描述

Globe

提供对  Globe  文档内容的访问。Globe 服务自动具备该能力。

1.6.1.4 地理编码服务

服务能力

功能描述

Geocoding

提供对地址定位器的访问。Geocode 服务始终具备该功能。

1.6.1.5 空间数据服务

服务能力

功能描述

Geodata

提供对 Geodatabase 数据的查询、提取和复制。Geodata 服务始终具备该功能。

WFS

使用符合 OGC WFS 标准的服务提供的操作。

WCS

使用符合 OGC WCS 标准的服务提供的操作。

1.6.1.6 地理处理服务

服务能力

功能描述

Geoprocessing

提供对工具箱或工具图层中地理处理模型的访问。 Geoprocessing服务自动具备该能力。

1.6.1.7 几何服务

服务能力

功能描述

Geometry

提供执行几何计算的内部引擎,如投影、生成缓冲区等,简化点,合并,裁剪等19个功能。

1.6.1.8 数据检索服务

服务能力

功能描述

Search

提供对企业级GIS数据资源的检索。Search服务始终具备该能力。

posted @ 2017-03-27 17:47  gisercode  阅读(186)  评论(0编辑  收藏  举报