当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。