0

我正在使用 ArcGIS Javascript API 4.20 从 ArcGIS Online 中检索 web 地图,并且可以使用以下简单脚本通过提供其 ID 来加载和显示它:

import MapView from "https://js.arcgis.com/4.20/@arcgis/core/views/MapView.js";
import WebMap from "https://js.arcgis.com/4.20/@arcgis/core/WebMap.js";
import esriId from "https://js.arcgis.com/4.20/@arcgis/core/identity/IdentityManager.js";

var webmap = new WebMap({
    portalItem: {
    id: "1234567890qwertyuiop"
    }
});

var view = new MapView({
    map: webmap,
    container: "mapFrame", //ID of the HTML element where the map will be displayed
});

我需要找到一种在加载地图时以编程方式调整地图缩放的方法,以便其中包含的每个图层/要素在地图中显示的区域中可见。

我找到了使用“fullExtent”函数的示例和参考资料,但据我了解,这旨在与图层一起使用。我无法弄清楚如何将相同的想法应用于完整的网络地图并使其工作: https ://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html #fullExtent

webmap.when(function(){
    view.extent = webmap.fullExtent;
});

//I've tried using this. It doesn't raise any errors, but does nothing.

你能告诉我我做错了什么吗?或者分享任何想法以使用不同的方法以编程方式实现我需要的东西?

4

1 回答 1

1

WebMap没有fullExtent属性,所以这是行不通的。

我猜您正在尝试一种方法来动态设置与某些图层功能相关的初始范围。如果是这种情况,您应该使用所fullExtent涉及层的属性来计算它。这不应该太难拉它,您可以手动迭代所有层的范围并获得最小和最大x和y,或使用(1)union的方法。Extent

另一种思考问题的方法是使用固定的感兴趣区域,手动计算范围并将其设置为视图。或者选择一个中心并使用缩放级别。

1 - ArcGIS API - 范围联合

于 2021-11-15T10:54:37.333 回答