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


JavaScript ArcGIS SceneLayerView.queryExtent用法及代碼示例


基本信息

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

類: esri/views/layers/SceneLayerView

繼承: SceneLayerView > LayerView > Accessor

自從:用於 JavaScript 4.3 的 ArcGIS API

用法說明

SceneLayerView.queryExtent函數(或屬性)的定義如下:

queryExtent (query, options) {Promise<Object>}


對圖層視圖中的要素執行 Query 並返回滿足查詢的要素的 3D Extent。如果未提供查詢參數,則返回所有已加載要素的範圍和計數。

SceneLayer 類說明的查詢部分閱讀更多關於查詢的信息。

要直接從場景服務中查詢要素的範圍,而不是為當前視圖加載的要素範圍,您必須使用 SceneLayer.queryExtent() 方法。

要對 SceneLayerView 進行基於屬性的查詢,您需要在 SceneLayer 的 outFields 屬性中指定必填字段,以確保屬性值在客戶端上可用於查詢。您可以使用 availableFields 檢查客戶端上可用的字段。

已知限製

  • 空間查詢與 projection engine 文檔中列出的限製相同。
  • 在計算與 query geometry 的空間關係時,對 3D 對象 SceneLayerView 的空間查詢使用要素的 Extent 而不是足跡。這意味著可能會從查詢中返回一個要素,即使它的足跡與幾何圖形沒有空間關係。
  • 目前在空間 queries 上僅支持 intersectscontainsdisjoint spatialRelationships
  • 如果 SceneLayerView 具有以下任何一項,則當前不支持空間查詢SpatialReference
    • GDM 2000 (4742) - 馬來西亞
    • Gsterberg (Ferro) (8042) - 奧地利/捷克共和國
    • ISN2016 (8086) - 冰島
    • SVY21 (4757) - 新加坡

參數:

類型說明
query Query autocast
可選的
來自 Object

指定查詢的屬性和空間過濾器。當沒有參數傳遞給此方法時,將返回客戶端中的所有函數。

options Object
可選的

具有以下屬性的對象。

規格:
signal

AbortSignal

可選的

可用於中止異步任務的信號對象。當發出中止信號時,返回的 Promise 將被名為 AbortErrorError 拒絕。另請參閱AbortController,了解有關如何構建可用於傳遞中止信號的控製器的更多信息。

返回:

類型 說明
Promise<Object> 解析後,返回滿足輸入查詢的要素的範圍和計數。有關詳細信息,請參閱下麵的對象規格表。
屬性 類型 說明
count Number 滿足輸入查詢的特征數。
extent Extent 滿足查詢的要素的範圍。

例子:

let layer = new SceneLayer({
  url: ssUrl  // points to a Scene Service layer url
});

view.whenLayerView(layer).then(function(layerView){
 watchUtils.whenNotOnce(layerView, "updating") // watches when the layer finishes updating the first time
   .then(function() {
     return layerView.queryExtent();
   })
   .then(function(results) {
     view.goTo(results.extent); // go to the extent of all the graphics in the layer view
   });
});

相關用法


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