图层(layer)在地图或场景中显示地理数据。地图和场景包含多个图层(layers)和数据表(tables)。表是数据源;表中的地理数据可以由某些类型的图层使用。运行时支持许多类型的图层。
图层的实现方式和功能各不相同。例如,要素图层(feature layers )在概念上与基础表(table)相关联;表中的数据由渲染器(renderer)表示。ArcGIS地图图像图层(image layers)和WMS图层显示服务器根据需要呈现的地图图像。ArcGIS平铺图层( tiled layers)和Web平铺图层显示服务器提前呈现的图块。ENC图层显示设备存储中文件的数据。
图层可以在地图中具有以下两种角色之一:
- Basemap layers 为地图中的信息提供上下文。例如,消费者地图服务上的图像或街道地图背景是底图。
- Operational layers 包含地图的主要内容。例如,一个 operational layer 可以包含附近所有加油站。
运行时层可用作操作或底图图层;您可以灵活地以对您的应用和制图有意义的方式使用图层。
图层定义信息的显示方式。它们可以使用表(tables),本地文件(local files)或远程服务(remote services)中的数据。如果您只需要在地图上放置点,或使用没有基础模型的临时数据,请考虑使用图形(graphics)。
许多图层可以在地图中显示。您可以控制图层的绘制顺序以及它们的可见性和不透明度。
There are many layer types available. See Layer types described to learn about Runtime layers and how to choose the right layer types for your map.
有许多层类型可用。请参阅 描述的图层类型(Layer types described)以了解运行时图层以及如何为地图选择正确的图层类型。
公共图层属性(Common layer properties)
所有图层都支持以下常见属性:
Name(名称) — 一个人类可读的名字
Description(描述) — 对图层内容的可读描述
Extent(范围) — 包含图层内容的地理区域
Spatial reference(空间参考) — 定义如何解释坐标。有关更多信息,请参阅 Spatial references(空间参考)
Visibility(可见性) — 允许您隐藏或显示图层而不将其从地图中删除。
Scale range(缩放范围) — 根据用户使用
MinScale
和MaxScale
属性放大到地图的距离来控制图层可见性。Opacity(透明度)
请注意,图层的实现样式和功能差别很大。大多数图层具有比上面列表中显示的更多属性。请参阅描述的图层类型描述(Layer types described)获取详情。
Choosing layers for your map(选择你需要的图层)
在为您的应用选择图层类型时,请问自己以下问题:
- 用户是否需要将数据与时间组件进行比较?
- 用户是否拥有始终在线的互联网连接?
- 用户是否需要能够查询,分析或选择数据?
- 用户是否需要能够编辑图层内容
- 您或您的用户是否需要控制图层的样式(颜色colors,填充图案patterns,图标icons等)?
- 您的应用是否需要与其他系统或ArcGIS Portal进行互操作?
了解了您的要求后,请参阅所描述的图层类型中的表格( Layer types described),以查看哪些图层符合您的需求。
了解您的数据是创建ArcGIS应用程序的“数据,设计,开发”模式的第一步。 ArcGIS DevLabs 将引导您完成将应用程序数据导入ArcGIS的过程。
如果要快速可视化应用程序可用的数据,但又不想将其存储在ArcGIS门户或图层中,请考虑使用图形(graphics)。
Choosing basemap layers(选择底图图层)
底图是地图的基础;它为您的数据提供上下文,并定义您的地图的外观。选择正确的底图可以:
- 将地图与您的品牌对齐
- 帮助讲述你的故事
- 使您的地图图层和图形更易于查看和理解
- 当您的应用连接到门户网站时,让您的应用感觉就像是用户的地理信息系统(GIS)的一部分
ArcGIS Online上有许多有吸引力的底图。如果您正在创建编辑或浏览表现形式,则您的用户可能习惯于通过其门户网站提供某些底图。您可以在用户的ArcGIS门户中 get a list of featured basemaps(获取特色底图列表)。
也可以 publish your own basemaps(发布自己的底图)或 customize the style(自定义现有矢量底图的样式)。
Time-aware layers(时间感知层)
虽然所有图层都支持地理信息,但时间感知图层也支持时间信息。当图层支持时间时,您可以:
- 根据时间过滤图层内容
- 使用时间偏移随时间比较数据
查看详情 Visualize and compare data over time.
Image adjustment layers(图像调整图层)
图像调整图层(Image adjustment layers)允许您更改图像的亮度(brightness),对比度(contrast)和灰度系数(gamma)。有关详细信息,请参阅描述的图层类 Layer types described
Layer performance considerations(图层性能考虑因素)
Vector & raster data(矢量和栅格数据)
地理数据的显示和管理有两种主要格式:
- Vector(向量) — 数据由点(points),线(lines)和多边形(向量)(polygons (vectors).)描述。客户端将矢量内容渲染为光栅图像以在设备上显示。
- Raster(光栅) — 数据通过预渲染图像传输;客户端没有关于渲染到图像中的基础功能的信息。
由于矢量图层在设备上渲染,因此它们始终非常适合客户端显示的大小和分辨率。矢量数据(Vector data)也非常小,非常适合脱机或在低带宽环境中使用。矢量不适合表示来自光栅源的数据,如卫星图像。
一些底图结合了栅格和矢量数据。例如,具有来自ArcGIS Online的街道(矢量)底图的世界图像使用平铺的栅格图层(tiled raster layer)来创建图像,使用矢量图层(vector layer)来显示要素和标签。这可确保功能和标签始终清晰,同时仍显示光栅图像。
Dynamic and tiled layers(动态和平铺图层)
服务可以采用两种方法之一来提供数据:
- Dynamic(动态) — 根据客户端提供的信息为每个请求生成一个映射,如所需的映像大小和范围。
- Tiled — 提前生成切片,然后根据客户需要提供。
由于动态地图是根据需要生成的,因此它们更适合于经常更改数据的地图。动态地图的缺点是它们需要更多的服务器资源 - 渲染地图图像是一项昂贵的操作。对于不经常更改的内容,平铺服务更合适。
Tables(数据表)
Tables 提供了可以直接处理或可能显示在要素图层中的数据源。ArcGIS中的 Tables 定义了要素的模式 - 一组一致的字段,这些字段具有预期的功能。Tables 有许多功能。空间表中的条目可以具有几何属性。Tables 可以来自几个来源:
- Shapefiles
- Geopackages
- Maps
- Feature services
- Geodatabases
Tables 能: - Queried(查询)
- Edited (depending on the source):编辑,取决于来源(许可)
- Shown in a feature layer(在要素图层中显示)
- Taken offline(下载为离线)
Non-spatial tables(非空间表)
非空间表与其他表一样,除了它们没有几何字段。因为它们没有几何体,所以它们无法在图层中渲染。虽然无法呈现非空间表,但仍可将它们作为查询的数据源添加到地图中。 空间表中的要素(对象)可以与非空间表中的要素related(关联)。非空间表由与空间表(spatial tables)相同的运行时类型表示。
Table performance concepts(表性能概念)
一个表可能有数十万个功能。您的应用如何从表中请求功能是一项性能关键决策。
使用来自服务(而不是本地文件)的表时,功能请求模式( feature request modes)控制功能的检索频率以及缓存方式。有三种功能请求模式:
- On interaction cache (交互缓存)(默认) — 此模式最适用于涉及具有大量不经常编辑的数据的服务的方案。如果您不稳定的服务连接,建议使用此模式。当这张表在地图中的图层中使用时,会为可见范围(地图区域)内的地图请求要素并在本地缓存。在将地图移动到其他区域时,将继续请求和缓存功能。已经缓存的要素不会再次请求。 也可以通过直接查询或填充表来请求Features。 SDK会选择执行查询的最佳方式,查询本地缓存,或查询服务并将结果导入本地缓存。例如,如果针对当前地图范围执行空间查询,则从本地缓存获得结果 - 这避免了从服务重新获取。
-
Manual cache(手动缓存) — 如果预计服务中的数据不会经常更改,并且客户端应用程序并不总是急需最新的数据,则建议使用此模式。从服务填充到本地缓存的数据量预计很小。只能通过调用
ServiceFeatureTable
的populateFromServiceAsync
方法来填充表的本地缓存。永远不会自动请求功能,并且永远不会根据地图交互填充缓存。 - On interaction, no cache(交互无缓存) — This mode is recommended if it is critical for your app to always be working with the latest data. 如果您的应用始终使用最新数据至关重要,则建议使用此模式。如果您偶尔或不可靠地连接该服务(如网络不好的地区),则不建议使用此模式。 当表在地图中的图层中使用时,会为可见范围请求要素,而不是在本地缓存。每次导航地图时都会从服务器请求功能,无论之前是否访问过该范围。始终对服务器执行查询。导航图层或查询表都会导致本地缓存被清除并重新填充。由于所有操作都涉及查询服务器,因此需要始终在线的服务连接。预计比其他交互模式更高的数据使用率。