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

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、辅助软件:

  • Collector for ArcGIS - 移动数据采集
  • Navigator for ArcGIS - 高度可定制的移动路由解决方案
  • Operations Dashboard for ArcGIS - 资源实时监控和自定义工作台
  • Explorer for ArcGIS - 发现和查看组织中的 GIS 服务
  • Workforce for ArcGIS - 用于协调现场工作的移动和web应用
  • Survey123 For ArcGIS - 轻量级数据收集和调查

4、开发者手册

  • ArcGIS REST API
  • ArcGIS API for JavaScript
  • ArcGIS Runtime SDK for Android
  • ArcGIS Runtime SDK for iOS
  • ArcGIS Runtime SDK for Java
  • ArcGIS Runtime SDK for macOS
  • ArcGIS Runtime SDK for .NET
  • ArcGIS Runtime SDK for Qt
  • ArcGIS API for Python

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() 方法,即可实现条件查询,如下:

ArcGIS的基本使用相关推荐

  1. ArcGIS Engine开发-TOCControl中实现图层的拖放

    TOCControl非常好,不用写一行代码就可以将整个地图的图层信息况显示出来: TOCControl也非常坏,提供的接口非常少,我认为有用的只有三个:HitTest,SetBuddyControl, ...

  2. ARCGIS中某字段递增赋值

    ARCGIS中某字段递增赋值 在地段计算器中使用一下代码: rec=0 def autoIncrement():global recpStart = 1 pInterval = 1 if (rec = ...

  3. arcgis xml 下载 切片_vue/cli3整合Cesium,加载离线arcgis 切片

    最開始使用webpack進行cesium 集成, 出现了问题一大堆,最后只好选择传统的方法直接引入了,具体操作如下 一.安装cesium 首选创建一个测试项目 vue create vue-join- ...

  4. arcgis合并tif影像_微图影像地图导出拼接大图的参数说明

    1. 概述 微图是一款集地图下载与GIS功能于一体的轻量级GIS产品,相较于X3版本的万能地图下载器,它有更丰富的地图数据和更专业的GIS功能. 尽管微图的软件界面已经足够简洁明了,但为了让新用户能更 ...

  5. ArcGIS水文分析实战教程(9)雨量计算与流量统计

    ArcGIS水文分析实战教程(9)雨量计算与流量统计 本章导读:降水是水文循环中重要的一环,降水包括雨.雪.雾.露.雹等,本章介绍的是降雨的环节.通过雨量站与插值的方式,实现雨量的空间分布就算,为水文 ...

  6. 《ArcGIS Runtime SDK for Android开发笔记》——(6)、基于Android Studio的ArcGIS Android工程结构解析...

    1.前言 Android Studio 是第一个Google官方的 Android 开发环境.其他工具,例如 Eclipse,在 Android Studio 发布之前已经有了大规模的使用.为了帮助开 ...

  7. ArcGIS制图之Sub Points点抽稀

    简介 Sub Points工具是 Esri 中国自主开发的一个插件,该工具优先考虑点在空间分布上的均匀合理性,并结合点数据中包含的 "优先级" 属性进行筛选.通过获取每个点在一定范 ...

  8. arcgis server 开发

    不知道有多少人采用 adf 做开发,不知为什么,感觉在web 上用他老不爽 javascript api http://resources.esri.com/help/9.3/arcgisserver ...

  9. arcgis 投影变换与坐标转换研究

    arcgis 投影变换与坐标转换研究 1 ArcGIS中的投影方法 投影的方法可以使带某种坐标信息数据源进行向另一坐标系统做转换,并对源数据中的X和Y值进行修改.我们生产实践中一个典型的例子是利用该方 ...

  10. ArcObjects编程方法(七):.NET中继承ArcGIS COM类

    要符合作为基类的要求,coclass必须满足: 定义为元数据 可创建 聚合 然而在ArcGIS中,ArcGIS COM类不能在.NET环境中作为基类.如果要想方便的创建ArcGIS组件,可以使用ESR ...

最新文章

  1. 二叉树中序遍历方法实现
  2. Microsoft Translator:打破语言障碍 拓展全球沟通新机遇
  3. 快速开发系统之前台页面 ---- NO1----登录页面
  4. 编写高质量javascript代码的基本要点
  5. 由乱序播放说开了去-数组的打乱算法Fisher–Yates Shuffle
  6. 整流五 - PWM整流器无差拍控制 一(重复控制算法)
  7. SPI转can芯片CSM300详解以及Linux驱动移植调试笔记
  8. FMCW 雷达基本原理
  9. 关闭455端口相关服务
  10. 【个人亲历】上海市人才引进落户最详细的流程记录说明
  11. Windows和Ubuntu搭建局域网中共享文件夹
  12. 学习笔记——Jupyter notebook快速入门教程
  13. zblog php wordpress,zblog和wordpress哪个好
  14. 深入Redis数据结构和底层原理
  15. 计算机网络中请求超时是什么意思,请求超时什么意思
  16. java内存(java内存溢出的几种原因和解决办法)
  17. 苹果手机为什么要越狱,越狱后的优缺点
  18. 关于泰克2465B校准
  19. three.js初体验:模拟一个小树杈的生长
  20. Stanford机器学习---第六周.学习曲线、机器学习系统的设计

热门文章

  1. 运用Android ROM Manager应用安装ClockworkMod Recovery的详细教程
  2. 2007 Microsoft Office 加载项:Microsoft Save as PDF 或 XPS
  3. c语言最好的文本编辑器,【软件分享】两个小巧好用的C语言编辑器
  4. 泛微OA系统Ngnix反向代理
  5. 【工具】js脚本下载百度文库生成word文本 + python爬取百度文库
  6. 数据库课程设计(实训)
  7. gnome黑屏 ubuntu_Ubuntu 16.04+GTX970 黑屏无法安装解决方法
  8. Halcon的一维码和二维码解码步骤和技巧
  9. javasocket编程(javasocket通信)
  10. 中信建投软件测试,中信建投笔试经验-范例