空间参考很重要,对于新来GIS的人来说,它们看起来很复杂。 空间参考确保可以集成不同图层或来源的空间数据,以便进行精确查看或分析。 如果将具有不同空间参考的图层组合在一起进行查看或分析,ArcGIS Runtime SDK会尝试通过设置默认值并在适当的空间参考中请求数据(如果可能的话)从服务处理这一差异。 但有时,您需要了解空间参考才能使事情顺利进行。 无论是将数据对齐在一起,使地图看起来合适,提高准确性,还是仅使图层显示出来,理解空间参考的基础知识都是至关重要的。

空间参考可以通过 well-known ID(WKID)来引用。 在下面的文本中提到了一些常见的WKID; 有关更完整的说明,请参阅本主题中的空间参考和转换规范

为什么空间参考很重要

要将空间数据整合到地图中或分析过程中,ArcGIS Runtime必须知道事物在地球表面的位置。 要做到这一点,它使用坐标。 坐标与坐标系相关,坐标系是围绕地球表面模型的参照系。 并非所有的坐标和相关的坐标系都是相同的; 他们可以以不同的单位(度分秒,十进制度或米)或者他们可以基于不同类型的模型。 为了将坐标从一个坐标系移到另一个坐标系,使用数学变换。 空间参考提供了所有这些信息,以及诸如期望的精度水平等参数,从而可以一起查看和分析空间数据。

关于设置空间参考的说明

在API中,空间参考类表示坐标系。它包含一个坐标系和辅助方法来访问和使用。间参考类与其他几个需要坐标系功能的API类相关联。例如,图层具有关联的空间参考。某些任务参数(例如查询任务和本地路由任务的任务参数)是空间参考对象。

Coordinate systems和projections

用于坐标系统的模型分为两大类:Coordinate systems和projections:

1). 地理坐标系(GCS)使用三维球面(或椭球面)来定义位置。 坐标基于从地球中心到地表的角度。 通常GCS使用以度为单位指定的纬度和经度。 从GPS设备导出的坐标在名为WGS84的GCS(WKID = 4326)中返回。

2). 投影坐标系统(PCS)是平面的(二维的),笛卡儿或“平坦的”。 与GCS不同,投影坐标系统在两个维度上具有恒定的长度,角度和面积。 PCSs使用地理坐标系统,然后扭曲数据,以便它可以表示在平面上用于打印的地图或屏幕上。坐标由网格上的x,y坐标标识。 ArcGIS Online,Google和OpenStreetMap底图使用相同的投影坐标系(名为Web Mercator辅助球体(WKID = 3857))。

您可能会遇到第三个坐标系,即一个与任何其他坐标系无关的局部坐标系。 原点和x,y坐标单位对应于本地参考点。由于局部坐标系与另一个坐标系的关系不容易建立,所以有时称为未知坐标系。

什么时候需要考虑坐标系参考

mapView上添加layer

ArcGIS Runtime渲染地图时,需要在同一空间参考中绘制所有数据,以便数据排列整齐。当您创建MapView时,您添加的第一个图层的空间参考将用作整个地图的空间参考;这通常是底图(basemap)。

当您向地图添加其他图层(MapView)时,您可能需要使用MapView使用的相同空间参考来请求它们。 无论你是否必须要求这取决于你添加的图层类型。 以下部分描述了与设置地图空间参考相关的图层类型。

Graphic layers

图形层不支持数据的即时重投影; ArcGIS Runtime呈现客户端的这些图层。 对图形图层进行即时重投影可能需要大量处理,这会减慢MapView渲染时间。 将图形图层添加到MapView时,必须确保其空间参考与MapView上定义的相同(通常由底图图层设置)。 您还需要确保添加到图形图层的单个图形在匹配的空间参考中具有坐标; 否则,图形可能不会显示在地图上.

Feature layers from feature services

在使用由ArcGIS for Server功能服务支持的功能服务表时,服务器支持重新投影。 将服务功能表添加到MapView时,请务必在初始化表之前根据MapView的空间参考设置其空间参考。 这将确保以正确的空间参考从服务器请求数据。 在使用ArcGIS要素图层时,如果将其添加到MapView中,ArcGIS Runtime会自动确定正确的空间参考并相应地从要素服务请求数据。

Feature layers from geodatabase feature tables

您的地理数据库中的表必须与要添加到其中的地图处于相同的空间参考中,因为不支持对这些表中的数据进行即时重新投影。 如果您使用的是桌面工作流程,请在运行创建运行时内容工具之前确保ArcMap地图框架正在使用所需的空间参考。 如果您正在使用服务工作流程,请在生成地理数据库之前在SyncTaskParameters中设置所需的空间参考。 有关桌面和服务器工作流程的详细信息,请参阅本指南的“创建离线地图”主题中的“离线模式”。

FeatureLayers from shapefiles FeatureTables and GeoPackagesFeatureTables

地理数据库中的表格需要与您要添加到的地图处于相同的空间参考中; 不支持从这些表中即时重新投射数据。

DynamicMapServiceLayers

如果这些是ArcGIS for Server地图服务,则服务器将支持重新投影。 将ArcGISDynamicMapService添加到MapView时,ArcGIS Runtime将自动根据MapView的空间参考为您提供正确的空间参考地图图像。 WMS地图服务是一种动态地图服务,它支持一组有限的空间参考,所以您应该在WMSLayer上设置空间参考,然后将其添加到MapView。

Tiled layers

TiledLayers是预先存储的图层。 在缓存时,使用空间参考,因此是预定义的。 通常不可能在与服务中定义的空间引用不同的空间引用中请求TiledLayers(除非服务器支持在运行中执行此操作,大多数则不支持)。 如果将ArcGIS平铺图层添加到不同空间参考的MapView中,则无法将其绘制为平铺图层。

Edit data

从坐标创建新要素时,坐标值必须与图层的空间参考相匹配; 否则,这些功能将不会显示在地图上的正确位置。 您可以使用几何引擎确保坐标在添加到图层之前正确转换。 有关几何引擎的更多信息,请参阅几何操作。

执行分析

用于分析的几何对象(例如,确定空间关系,例如多边形相交的位置)需要在执行分析之前知道空间参考。 否则,结果可能不准确或不正确。 同样,如果两个几何对象具有不同的空间参考,则比较两个几何对象或确定它们的空间关系是没有意义的。 要在地图图层中显示几何图形,几何图形必须具有与图层相同的空间参考或投影到图层的空间参考。 要一起使用两个对象,如果这些对象都具有空间参考,则它们应具有相同的空间参考。 有关通过几何操作进行分析的更多信息,请参阅几何操作

空间参考转换

当使用几何引擎将一个空间参考转换为另一个空间参考时,必须指定输入和输出空间参考。 您也可以指定要使用的转换。 有关详细信息,请参阅“几何操作”中的投影到不同的空间参考

空间参考和转换规范

要定义空间参考,您可以使用WKID(有时也称为空间参考ID或SRID)或称为知名文本(WKT)的全文定义。 WKID由标准组织或组织定义。 ArcGIS支持多种WKID,通常由欧洲石油调查组织(EPSG)或Esri定义的WKID以及其他一些常用的ID。 WKT是指定空间参考的所有参数的全文定义(如上所述)。 要了解支持哪些WKID并查看其WKT定义,请参阅以下内容:

Geographic coordinate systems Projected coordinate systems