基本信息
以下是所在類或對象的基本信息。
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。