當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JavaScript ArcGIS View用法及代碼示例


基本信息

以下是所在類或對象的基本信息。

AMD: require(["esri/views/View"], (View) => { /* code goes here */ });

ESM: import View from "@arcgis/core/views/View";

類: esri/views/View

繼承: View > Accessor

子類: MapView , SceneView

自從:用於 JavaScript 4.0 的 ArcGIS API

用法說明

視圖提供了查看 Map 的組件並與之交互的方法。 Map 隻是一個容器,用於存儲基礎層和業務層中包含的地理信息。視圖呈現 Map 及其各種 layers ,使它們對用戶可見。

有兩種類型的視圖:MapViewSceneView。 MapView 以 2D 形式渲染Map及其圖層。 SceneView 以 3D 形式呈現這些元素。 View 是MapView 和SceneView 的基類,沒有構造函數。要創建視圖,您必須直接創建 MapViewSceneView 的實例。

MapView (2D) SceneView(3D)
mapview sceneview

要將視圖與Map關聯,必須將Map屬性設置為 Map 的實例。

// Load the Map and MapView modules
require(["esri/Map", "esri/views/MapView"], function(Map, MapView) {
  // Create a Map instance
  let map = new Map({
    basemap: "topo-vector"
  });

  // Create a MapView instance (for 2D viewing) and set its map property to
  // the map instance we just created
  let view = new MapView({
    map: map,
    container: "viewDiv"
  });
});

在上麵的代碼片段中,您會注意到視圖上設置了 container 屬性。容器屬性是對包含視圖的 DOM 節點的引用。這通常是 <div> 元素。上麵示例中引用的容器可能類似於:

<body>
 <div id="viewDiv"></div>
</body>

您可以在 Create a 2D map tutorial 和任何可用的 samples 中觀察視圖與 HTML 容器的關係。

可以在視圖上設置其他屬性,例如旋轉、縮放、彈出和填充。有關特定於在 2D 和 3D 中創建視圖的其他屬性,請參閱MapViewSceneView

Map 可能有多個與之關聯的視圖,包括 MapViews 和 SceneViews 的組合。請參閱 Geodesic buffers2D overview map in SceneView 示例,了解 MapView 和 SceneView 如何在單個應用程序中顯示相同的Map。雖然多個視圖可以引用同一個Map,但一個視圖可能不會將自己與多個 Map 實例相關聯。

視圖還允許用戶與Map的組件進行交互。例如,當用戶點擊或觸摸Map中某個要素的位置時,他們既沒有觸摸該要素也沒有觸摸Map;該事件實際上由引用Map的視圖和引用圖層的LayerView 處理。因此,click 等事件不在 Map 或 Layer 上處理,而是在 View 上處理。有關其他詳細信息,請參閱MapViewSceneView

相關用法


注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 View。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。