ArcGIS的基本使用

 

在地理信息系统的相关开发过程中,采用一种好的方式去展现地图,以及在地图中融合各种各样的空间数据,是很重要的。

ArcGIS 就是一个用于创建、管理、共享和分析空间数据的优秀平台,包含了各种地图服务组件、移动和桌面应用,以及开发者工具。

这里记录下学习 ArcGIS 的过程,方便以后查看,由于自己主要开发 web GIS 方面,即网页版地图信息系统,所以  ArcGIS API for JavaScript 是重点。

参考文章:

https://www.esri.com/en-us/about/about-esri/overview(About Esri)

https://developers.arcgis.com/labs/what-is-arcgis/(What is ArcGIS?)

https://developers.arcgis.com/javascript/(ArcGIS API for JavaScript)

http://www.cnblogs.com/daihere1993/p/4999760.html(对一些ArcGIS for JS的API的一些理解)

1、背景知识

(1)GIS

GIS 是 geography information 和 system 的缩写,表示地理信息系统。

GIS 是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统

(2)Esri

Esri 是 environment system research institute 的缩写,是一家美国环境系统研究所,成立于 1969 年。

Esri 开创了利用 GIS 解决问题的先河,是世界最大的 GIS 技术提供商。

Esri 相信位置智能(科学有效利用地理信息)在每个组织中都能发挥数据的全部潜力。

(3)ArcGIS

ArcGIS 就是 Esri 建立的世界上最强大的地图和空间分析软件,用于 GIS 的开发。

准确来说,ArcGIS 是一系列地图相关软件和服务的统称,所以称为管理地理信息的一个平台,主要的如下:

1、核心软件: ArcGIS 在线版和 ArcGIS 企业版

2、桌面软件:ArcGIS pro 和 ArcMap

3、辅助软件:

4、开发者手册

2、ArcGIS API for Javascript 的相关概念

在进行 Web GIS 的开发过程中,查看 ArcGIS API for Javascript 是很重要的,主要还是看官网的例子和 API,下面只是一些简单的理解。

(1)Map、MapView、SceneView

Map 是每个地图控件中必须引入的类,要生成地图,进行地图操作,都需要生成一个 Map 对象。

而 Map 的载体则是 View,其中有两种比较重要:

MapView 表示以 2D 的形式展示地图,SceneView 表示以 3D 的形式展示地图

(2)geometry

geometry 指代各种几何图形,以及其相关操作,具体分为如下:

1、Point:点

2、Polyline:多线

3、Polygon:多边形

4、Multipoint:多点

5、ScreenPoint:屏幕点,表示相对于视图左上角的像素点

6、circle:圆,是一种特殊的多边形

7、coordinateFormatter:用于在点和表示点的特殊字符串之间进行相互转换

8、Extent:通常用于设置或表示显示区域的范围,用坐标进行表示

9、Geometry:是各个几何图形的基类

10、geometryEngine:几何工具,主要用于测试、测量和分析多个几何图形直接的空间关系,当然得在同一个空间参考系

11、geometryEngineAsync:异步的几何工具,基本同 geometryEngine

12、HeightModelInfo:定义垂直坐标系的特征,为了避免渲染出在不相容的垂直坐标系的图层

13、mesh :网格,是一种通用的,由带有属性的顶点组成3D客户端几何图形

14、projection:投影,用于将几何图形从一个空间引用转换为另一个空间引用

15、SpatialReference:空间参考系,由 WKID 或 WKT 定义

(3)graphic

graphic 指代单个图形。所有的几何图形 geometry,都需要通过 graphic 进行添加,相当于各个图形的载体。

graphic 中 geometry 代表具体是什么图形,而 symbol 则用来表示如何进行展现,这两个属性对于绘制 graphic 来说是必需的。

如下添加点 point:

(4)GraphicsLayer

从上面 graphic 的添加方式来看,单个 graphic 可以通过 view 的 graphics 进行添加。

而如果想要一次添加很多个几何图形,就可以用 GraphicsLayer 来作为载体,从而使用 map 进行添加,方便进行管理。如下:

(5)FeatureLayer

通过 GraphicsLayer 添加各个几何图形,有个好处就是可以添加各种类型的几何图形在一个图层里。

但 GraphicsLayer 缺乏很多对图形属性的操作,比如查询、过滤等。

FeatureLayer 对属性的查询和过滤等有很好的支持,但一个 FeatureLayer 只能加载一种类型的几何图形。

可以说 FeatureLayer 是 GraphicsLayer 的一个变体,构造方式上也是格式有所不同,如下:

其中 source 所含的要素集合,实际上就是 graphics ,即几何图形的集合,只是几何图形都是同种类型,和 geometryType 保持一致。

而要素的展示方式,则是由 renderer 来指定了,其中实际上也就是 symbol。

(6)QueryTask、Query

要素图层 FeatureLayer 要进行属性查询,可以用其自带的 queryFeatures() 方法等,不过需要先创建 FeatureLayer。

如果不想创建 FeatureLayer,但有其地址 url ,则可以用 QueryTask 创建一个查询任务,来进行查询。

Query 主要是用来构造查询参数,传入 QueryTask 的 execute() 方法,即可实现条件查询,如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值