WebMap

从ArcGIS Online或ArcGIS企业门户加载WebMap到MapView。它定义了webmap的内容、样式和书签,并且可以在多个ArcGIS web和桌面应用程序之间共享。webmap被保存为JSON文档,可以被用于JavaScript的ArcGIS API通过webmap类使用,从而轻松创建引人注目的2D应用程序。JSON文档是根据webmap规范编写的。虽然您可以轻松地创建自己的webmap,但是在ArcGIS Online中有许多示例webmap,您可以使用它们来开始使用API。你可以修改或添加新的内容到这些网络地图。

要将WebMap从ArcGIS Online加载到MapView中,您必须在这个类的portalItem属性中引用WebMap的ID。


      const webmap = new WebMap({
              portalItem: { //自动转换为新的PortalItem()
              id: "e691172598f04ea8881cd2a4adaa45ba"
           }
       });
     const view = new MapView({
                    map: webmap,  // The WebMap instance created above
                    container: "mapDivRef"
                });

要从本地门户加载Webmap,请在esriConfig.portalurl中设置门户url。


esriConfig.portalUrl = "https://myHostName.esri.com/arcgis";
const webmap = new WebMap({
  portalItem: { // autocasts as new PortalItem()
    id: "f701172599f04ea8781de2a4adzz46ab"
  }
});

然后您必须在视图的map属性中引用WebMap实例。


const view = new MapView({
  map: webmap,  // 上面创建的WebMap实例
  container: "viewDiv"
});

已知的限制

  • WCS和WFS层目前不受支持。当webmap包含API中还不支持的层类型时,层将被创建为UnsupportedLayer。这个层类型特别适用于这样的情况:这个层可能存在于一个给定的WebMap中(例如WFS层),但是当前访问它的API版本可能不支持它。如果WebMap的未来版本包含一个新类型的layer,我们将使用一个未知层。API版本可能无法识别此层类型,因此它可能是一个未知的层。
  • 嵌入式的路线。在ArcGIS Online 8.1发布之前(2020年3月),当从一个存储在WebMap中的条目复制一个路由层时,它会被存储为一个嵌入的特性集合,并且无意中没有被归为一个路由。当这些webmaps被JS API加载时,路由将由GroupLayer而不是esri/layers/RouteLayer表示。这不会影响在ArcGIS Online 8.1版本发布后复制的路由层项目,也不会影响作为门户项目存储的路由。复制路由层条目作为webmap的一部分存储不是常见的场景。
  • 从弹出特性访问几何图形。从4.17版本开始,webmaps不再在弹出窗口的特性中返回几何图形。如果弹出窗口没有一个与几何体一起工作的参考Arcade表达式,现在需要设置webmap层的外域或它的弹出模板外域。

构造函数

new WebMap(properties):有关可能被传递到构造函数的所有属性的列表,请参阅属性。


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

属性概述

allLayers:地图中所有图层的扁平集合。

allTables:地图层次结构中任意位置的扁平表集合。

applicationProperties:applicationProperties包含WebMap的查看属性。

authoringApp:创建WebMap的应用程序的名称。

authoringAppVersion:创建WebMap的应用程序的版本。

basemap:为映射指定一个基本地图。

bookmarks:保存的地理范围数组,允许终端用户快速导航到感兴趣的特定区域。

ground:指定map的表面属性。

initialViewProperties:WebMap的初始视图。

layers:操作层的集合。

loaded:指示实例是否已加载。

loadError:如果加载时发生错误,则返回错误对象。

loadStatus:表示加载操作的状态。

portalItem:从其中加载WebMap的门户项目。

presentation:提供多个幻灯片。

sourceVersion:读取WebMap的源文档的版本。

tables:图层实例的集合,它们是保存在Map和/或WebMap中的表。

thumbnailUrl:用于webmap的缩略图的URL。

widgets:widget对象包含公开给用户的widget。

方法概述

add():在图层集合中添加一个图层。

addMany():向图层集合中添加一个层或一组层。

destroy():销毁webmap和任何相关的资源,包括它的层、basemap、ground、表和portalItem。

findLayerById():返回一个基于给定层id的层。

fromJSON():创建这个类的一个新实例,并使用ArcGIS平台中产品生成的JSON对象的值对其进行初始化。

isFulfilled():isFulfilled()可用于验证类的实例创建是否完成(解析或拒绝)。

isRejected():isRejected()可以用于验证创建类的实例是否被拒绝。

isResolved():isresolve()可用于验证创建类的实例是否已解析。

loadAll():加载与webmap关联的所有外部可加载资源。

load():触发WebMap实例的加载。

remove():从图层集合中移除指定的层。

removeAll():删除所有层。

removeMany():移除指定的层。

reorder():改变层的顺序。

save():将webmap保存到与其关联的门户项目。

saveAs():将webmap保存到一个新的门户项目。

updateFrom():更新与视图相关的WebMap属性。

when():when()可以在创建类的实例后使用。

属性和方法同Map这里不介绍

版权声明:
作者:Gomo
链接:https://www.develophm.com/index.php/webmap/735/
来源:开发之家
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>