簡體   English   中英

如何使用 ArcGIS Javascript API 顯示網絡地圖的完整范圍?

[英]How to display full extent of a webmap using ArcGIS Javascript API?

我正在使用 ArcGIS Javascript API 4.20 從 ArcGIS Online 檢索網絡地圖,並且我能夠通過使用以下簡單腳本提供其 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.

你能告訴我我做錯了什么嗎? 或者分享任何想法以使用不同的方法以編程方式實現我需要的東西?

WebMap沒有fullExtent屬性,因此無法正常工作。

我猜您正在嘗試有一種方法來動態設置與某些圖層功能相關的初始范圍。 如果是這種情況,您應該使用所涉及層的fullExtent屬性來計算它。 拉它應該不會太難,您可以手動迭代層的所有完整范圍並獲得最小和最大 x 和 y,或者使用Extent (1) 的union方法。

另一種思考問題的方法是使用固定的興趣區域,手動計算范圍並將其設置為視圖。 或者選擇一個中心並使用縮放級別。

1 - ArcGIS API - 范圍聯合

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM