-
queryFeatures
(query, options)
{Promise<FeatureSet>}
對圖層視圖中的要素執行 Query 並返回 FeatureSet 。如果未提供查詢參數,則返回所有加載的特征。
要針對場景服務中的所有要素執行查詢,而不僅僅是為當前視圖加載的要素,您必須使用SceneLayer.queryFeatures() 方法。
要對 SceneLayerView 進行基於屬性的查詢,您需要在 SceneLayer 的 outFields 屬性中指定必填字段,以確保屬性值在客戶端上可用於查詢。您可以使用 availableFields 檢查客戶端上可用的字段。
已知限製
- 空間查詢與 projection engine 文檔中列出的限製相同。
- 在計算與 query geometry 的空間關係時,對 3D 對象 SceneLayerView 的空間查詢使用要素的 Extent 而不是足跡。這意味著可能會從查詢中返回一個要素,即使它的足跡與幾何圖形沒有空間關係。
- 目前在空間 queries 上僅支持
intersects
、contains
和disjoint
spatialRelationships 。 - 如果 SceneLayerView 具有以下任何一項,則當前不支持空間查詢SpatialReference:
- GDM 2000 (4742) - 馬來西亞
- Gsterberg (Ferro) (8042) - 奧地利/捷克共和國
- ISN2016 (8086) - 冰島
- SVY21 (4757) - 新加坡
參數:
類型 說明 可選的 來自 Object指定查詢的屬性和空間過濾器。當沒有參數傳遞給此方法時,客戶端中的所有函數及其在 availableFields 中指定的屬性都會返回。要僅返回視圖中可見的要素,請將查詢對象中的
geometry
參數設置為視圖的範圍。options Object可選的 具有以下屬性的對象。
規格:signal可選的 可用於中止異步任務的信號對象。當發出中止信號時,返回的 Promise 將被名為
AbortError
的 Error 拒絕。另請參閱AbortController,了解有關如何構建可用於傳遞中止信號的控製器的更多信息。返回:
類型 說明 Promise<FeatureSet> 解決後,將返回 FeatureSet。如果找到零個結果,則該集合將為空。 例子:
let layer = new SceneLayer({ url: ssUrl // points to a Scene Service layer url }); // returns loaded features from the layer view that match the query let query = new Query(); query.objectIds = [10, 125, 126, 200, 201]; query.outFields = ["NAME", "STATE_ABBR", "POP04"]; view.whenLayerView(layer).then(function(layerView){ watchUtils.whenNotOnce(layerView, "updating") .then(function() { return layerView.queryFeatures(query); }) .then(function(result) { console.log(result.features); // prints the client-side graphics to the console }); });
let layer = new SceneLayer({ url: ssUrl // points to a Scene Service layer url }); // returns all loaded features from the layer view view.whenLayerView(layer).then(function(layerView){ layerView.watch("updating", function(val){ if(!val){ // wait for the layer view to finish updating layerView.queryFeatures().then(function(result){ console.log(result.features); // prints all loaded client-side graphics to the console }); } }); });
基本信息
以下是所在類或對象的基本信息。
類:
esri/views/layers/SceneLayerView
繼承: SceneLayerView > LayerView > Accessor
自從:用於 JavaScript 4.3 的 ArcGIS API
用法說明
SceneLayerView.queryFeatures
函數(或屬性)的定義如下:
相關用法
- JavaScript ArcGIS SceneLayerView.queryFeatureCount用法及代碼示例
- JavaScript ArcGIS SceneLayerView.queryExtent用法及代碼示例
- JavaScript ArcGIS SceneLayerView.queryObjectIds用法及代碼示例
- JavaScript ArcGIS SceneLayerView.when用法及代碼示例
- JavaScript ArcGIS SceneLayerView.highlight用法及代碼示例
- JavaScript ArcGIS SceneLayer用法及代碼示例
- JavaScript ArcGIS SceneLayer layerview-create事件用法及代碼示例
- JavaScript ArcGIS SceneLayer.portalItem用法及代碼示例
- JavaScript ArcGIS SceneLayer.apiKey用法及代碼示例
- JavaScript ArcGIS SceneLayer.queryCachedStatistics用法及代碼示例
- JavaScript ArcGIS SceneLayer.definitionExpression用法及代碼示例
- JavaScript ArcGIS SceneLayer.labelingInfo用法及代碼示例
- JavaScript ArcGIS SceneLayer.version用法及代碼示例
- JavaScript ArcGIS SceneLayer.renderer用法及代碼示例
- JavaScript ArcGIS SceneLayer.visible用法及代碼示例
- JavaScript ArcGIS SceneLayer.fieldsIndex用法及代碼示例
- JavaScript ArcGIS SceneLayer.when用法及代碼示例
- JavaScript ArcGIS SceneLayer.outFields用法及代碼示例
- JavaScript ArcGIS SceneLayer.featureReduction用法及代碼示例
- JavaScript ArcGIS SceneLayer.opacity用法及代碼示例
- JavaScript ArcGIS SceneLayer.maxScale用法及代碼示例
- JavaScript ArcGIS SceneLayer.fullExtent用法及代碼示例
- JavaScript ArcGIS SceneLayer.layerId用法及代碼示例
- JavaScript ArcGIS SceneLayer layerview-create-error事件用法及代碼示例
- JavaScript ArcGIS SceneLayer.on用法及代碼示例
注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 SceneLayerView.queryFeatures。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。