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/
来源:开发之家
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论