當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JavaScript ArcGIS MapNotesLayer用法及代碼示例


基本信息

以下是所在類或對象的基本信息。

AMD: require(["esri/layers/MapNotesLayer"], (MapNotesLayer) => { /* code goes here */ });

ESM: import MapNotesLayer from "@arcgis/core/layers/MapNotesLayer";

類: esri/layers/MapNotesLayer

繼承: MapNotesLayer > Layer > Accessor

自從:用於 JavaScript 4.4 的 ArcGIS API

用法說明

MapNotesLayer 允許您顯示和修改來自 Map Viewer 的Map注釋(在 web Map上繪製的特征)。也可以使用 2D MapView 中的 SketchViewModel 創建新的 MapNotesLayer。

MapNotesLayer 將Map注釋組織為 sublayers 集合中的 5 種圖層類型:multipointLayer、pointLayer、polygonLayer、polylineLayer 和 textLayer。這些層中的每一層都是 GraphicLayers。標題(針對 LayerList 小部件)、popupTemplate、幾何圖形和符號係統可以更新和保留。

Map注釋是 web Map的一部分,通常使用 Map Viewer 創建。有關其他信息,請參閱 ArcGIS 在線文檔,了解如何 Add Map notes 。在 web map specification 中,Map注釋是 FeatureCollections 的一種特殊類型。

可以顯示使用 Map Viewer Classic 創建的Map注釋,但無法使用此類修改或訪問Map注釋。要了解MapNotesLayer中的Map注釋是否可以編輯,您可以檢查capabilities.operations.supportsMapNotesEditing屬性值。

已知限製

  • 目前,MapNotesLayer 在 3D SceneViews 中不受支持。
  • MapNotesLayer 不支持 Legend 小部件。
  • 對可見性、比例範圍和不透明度屬性的更改不會保留。
  • 使用 Map Viewer Classic 創建的Map注釋不支持編輯,並且不在 LayerList 小部件中顯示子圖層。

以下代碼段演示了如何加載包含MapNotes 圖層的現有網絡Map。

const map = new WebMap({
  portalItem: {
    id: "6b3bfc4900214761a709b5d5a6a3d92b"
  }
});

const view = new MapView({
  container: "viewDiv",
  map
});

view.when(() => {
  // get the layer type ("map-notes")
  console.log(map.layers.getItemAt(0).type);
  // get the title
  console.log(map.layers.items[0].sublayers.items[0].sublayers.items[0].attributes.title);
  // update the popupTemplate
  map.layers.items[0].sublayers.items[1].sublayers.items[0].popupTemplate.content = "{title} has an updated popup";
});

此代碼段創建一個新的 MapView 並從現有門戶項目加載 MapNotes 圖層。

const map = new Map({
  basemap: "topo-vector"
});

const view = new MapView({
  container: "viewDiv",
  map
});

const promise = Layer.fromPortalItem({
  portalItem: {
    id: "2e2f6840647d4cb9a384532652e5100f"
  }
});
promise.then((layer) => {
  console.log(layer.type); // "map-notes"
  map.add(layer);

  Promise.all([view.when(), layer.load()]).then(() => {
    view.goTo(layer.fullExtent);
  });
});

相關用法


注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 MapNotesLayer。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。