基本信息
以下是所在类或对象的基本信息。
AMD:
require(["esri/layers/MapImageLayer"], (MapImageLayer) => { /* code goes here */ });
ESM:
import MapImageLayer from "@arcgis/core/layers/MapImageLayer";
类:
esri/layers/MapImageLayer
继承: MapImageLayer > Layer > Accessor
自从:用于 JavaScript 4.0 的 ArcGIS API
用法说明
概述
MapImageLayer 允许您显示和分析 map service 中定义的子图层中的数据,导出图像而不是特征。Map服务图像是根据请求在服务器上动态生成的,其中包括 LOD(细节级别)、边界框、dpi、空间参考和其他选项。在 2D 中,导出的图像具有指定的整个Map范围。在 3D 中,导出两个图像:靠近相机的区域具有较高分辨率的图像,距离相机较远的区域具有较低分辨率的图像。
与 FeatureLayer 不同,MapImageLayer 处理由服务器而不是客户端处理。在某些情况下,将处理卸载到服务器允许MapImageLayer 以更高的性能呈现更多函数。
MapImageLayer 不显示平铺图像。要显示切片Map服务图层,请参阅TileLayer。
创建MapImageLayer
MapImageLayer 可以通过以下两种方式之一创建:从服务 URL 或从 ArcGIS 门户项目 ID。
引用服务 URL
要从服务创建 MapImageLayer 实例,您必须将 url 属性设置为Map服务中图层的 REST 端点。 URL 通常如下所示。
https:\/\/<hostname>/arcgis/rest/services/<service-name>/MapServer
要使图层在视图中可见,必须将其添加到视图引用的Map。有关向Map添加图层的信息,请参阅Map.add()。
require(["esri/layers/MapImageLayer"], function(MapImageLayer){
// points to the states layer in a service storing U.S. census data
let layer = new MapImageLayer({
url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Census/MapServer"
});
map.add(layer); // adds the layer to the map
});
如果从不同的域请求Map服务,则需要 CORS enabled server 或 proxy。
引用 ArcGIS 门户项目 ID
如果 ArcGIS Online 或 ArcGIS Enterprise 中作为项目存在,您还可以根据其 ID 创建 MapImageLayer。例如,以下代码片段显示如何使用 PortalItem 属性将新的 MapImageLayer 实例添加到Map。
// references an ArcGIS Online item pointing to a Map Service Layer
let layer = new MapImageLayer({
portalItem: { // autocasts as esri/portal/PortalItem
id: "8444e275037549c1acab02d2626daaee"
}
});
map.add(layer); // adds the layer to the map
子层
Map服务包含一个或多个子图层。子层甚至可以包含嵌套子层。当未指定 MapImageLayer 的 sublayers 属性时,会将服务中所有子图层的图像导出到客户端。如果指定了服务中的子层子集,则仅在客户端上渲染该子层子集。子图层具有保存到服务器的默认渲染、比例可见性、标签和其他属性。但是,这些属性可能会动态更改,以便将新的Map图像导出到视图中。 MapImageLayer 的子图层只能使用 2D 符号系统设置样式,即使它们在 WebScene 中渲染也是如此。要了解有关使用子层的更多信息,请参阅Sublayer API 文档。
动态层
子图层可以动态渲染为动态图层。有两种类型的动态层:DynamicMapLayer 和 DynamicDataLayer。
Dynamic map layers 允许您使用新的渲染器、定义表达式、不透明度、比例可见性等覆盖Map服务中的子图层。单个Map服务图层可能存在多个动态Map图层。
Dynamic data layers 提供从注册工作区中引用的数据动态创建图层的能力。数据可以是包含或不包含几何、要素类和栅格的表。这些数据源对服务目录不直接可见,但可以使用ArcGIS 服务器管理器发布和配置。表中的数据可以连接到其他表或动态Map图层。
Esri 要求当您在应用程序中使用 ArcGIS 在线底图时,该Map必须包含 Esri 署名,并且您必须获得使用该内容的许可。有关使用归因的详细指南,请访问官方 attribution in your app 文档。有关使用条款的信息,请参阅Terms of Use FAQ。
例子:
let layer = new MapImageLayer({
url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer",
sublayers: [
{
id: 3,
visible: false
}, {
id: 2,
visible: true
}, {
id: 1,
visible: true
}, {
id: 0,
visible: true,
definitionExpression: "pop2000 > 100000"
}
]
});
相关用法
- JavaScript ArcGIS MapImageLayer.minScale用法及代码示例
- JavaScript ArcGIS MapImageLayer.customParameters用法及代码示例
- JavaScript ArcGIS MapImageLayer layerview-create-error事件用法及代码示例
- JavaScript ArcGIS MapImageLayer.portalItem用法及代码示例
- JavaScript ArcGIS MapImageLayer.fetchImage用法及代码示例
- JavaScript ArcGIS MapImageLayer layerview-create事件用法及代码示例
- JavaScript ArcGIS MapImageLayer.loadAll用法及代码示例
- JavaScript ArcGIS MapImageLayer.opacity用法及代码示例
- JavaScript ArcGIS MapImageLayer.timeOffset用法及代码示例
- JavaScript ArcGIS MapImageLayer.fullExtent用法及代码示例
- JavaScript ArcGIS MapImageLayer.findSublayerById用法及代码示例
- JavaScript ArcGIS MapImageLayer.url用法及代码示例
- JavaScript ArcGIS MapImageLayer.datesInUnknownTimezone用法及代码示例
- JavaScript ArcGIS MapImageLayer.useViewTime用法及代码示例
- JavaScript ArcGIS MapImageLayer.maxScale用法及代码示例
- JavaScript ArcGIS MapImageLayer.version用法及代码示例
- JavaScript ArcGIS MapImageLayer.on用法及代码示例
- JavaScript ArcGIS MapImageLayer.refreshInterval用法及代码示例
- JavaScript ArcGIS MapImageLayer.allSublayers用法及代码示例
- JavaScript ArcGIS MapImageLayer.when用法及代码示例
- JavaScript ArcGIS MapImageLayer.timeInfo用法及代码示例
- JavaScript ArcGIS MapImageLayer.createServiceSublayers用法及代码示例
- JavaScript ArcGIS MapImageLayer.visible用法及代码示例
- JavaScript ArcGIS MapImageLayer.effect用法及代码示例
- JavaScript ArcGIS MapImageLayer.sublayers用法及代码示例
注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 MapImageLayer。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。