本文簡要介紹 python 語言中 arcgis.mapping.MapTable.query
的用法。
用法:
query(where='1=1', out_fields='*', time_filter=None, return_count_only=False, return_ids_only=False, return_distinct_values=False, group_by_fields_for_statistics=None, statistic_filter=None, result_offset=None, result_record_count=None, object_ids=None, gdb_version=None, order_by_fields=None, out_statistics=None, return_all_records=True, historic_moment=None, sql_format=None, return_exceeded_limit_features=None, as_df=False, range_values=None, parameter_values=None, **kwargs)
返回:
包含與查詢匹配的
Feature
對象的FeatureSet
或 Panda 的 DataFrame,除非指定了另一種返回類型,例如count
query
方法根據 sql 語句中的一組條件查詢表層。Parameter
Description
where
可選字符串。默認值為 1=1。選擇sql語句。
out_fields
可選的要返回的字段名稱列表。字段名稱可以指定為字段名稱列表或逗號分隔的字符串。默認值為“*”,它返回所有字段。
object_ids
可選字符串。要查詢的該圖層或表的對象ID。對象 ID 值應該是逗號分隔的字符串。
time_filter
可選列表。格式為 [<startTime>, <endTime>],使用 datetime.date、datetime.datetime 或時間戳(以毫秒為單位)。
>>> time_filter=[<startTime>, <endTime>]
指定為
datetime.date
、datetime.datetime
或timestamp
以毫秒為單位。>>> import datetime as dt >>> time_filter = [dt.datetime(2022, 1, 1), dt.dateime(2022, 1, 12)]
gdb_version
可選字符串。要查詢的地理數據庫版本。僅當圖層的
isDataVersioned
屬性為true
時,此參數才適用。如果未指定,則查詢將應用於已發布Map的版本。return_geometry
可選的布爾值。如果
True
,幾何圖形將與查詢一起返回。默認為True
。return_distinct_values
可選的布爾值。如果是
True
,它會根據out_fields
中指定的字段返回不同的值。僅當圖層的supportsAdvancedQueries
屬性為true
時,此參數才適用。return_ids_only
可選的布爾值。默認為假。如果
True
,則響應僅包含對象 ID 數組。否則,響應為FeatureSet
。return_count_only
可選的布爾值。如果
True
,則響應僅包括查詢將返回的計數(特征/記錄數)。否則,響應為FeatureSet
。默認值為False
。此選項取代return_ids_only
參數。如果return_count_only = True
,響應將返回計數和範圍。order_by_fields
可選字符串。一個或多個用於對結果進行排序的字段名稱。在要排序的每個字段之後,分別使用
ASC
或DESC
進行升序或降序:>>> order_by_fields = "STATE_NAME ASC, RACE DESC, GENDER ASC"
group_by_fields_for_statistics
可選字符串。一個或多個字段名稱,用於對結果進行分組以計算統計信息。
>>> group_by_fields_for_statiscits = "STATE_NAME, GENDER"
out_statistics
可選字符串。要計算的一個或多個基於字段的統計數據的定義。
- 用法
>>> out_statistics = [ { "statisticType": "<count | sum | min | max | avg | stddev | var>", "onStatisticField": "Field1", "outStatisticFieldName": "Out_Field_Name1" },{ "statisticType": "<count | sum | min | max | avg | stddev | var>", "onStatisticField": "Field2", "outStatisticFieldName": "Out_Field_Name2" } ]
result_offset
可選整數。此選項可用於通過跳過指定數量的記錄並從下一條記錄(即
result_offset + ith
)開始來獲取查詢結果。如果return_all_records
為True
(即默認情況下),則忽略此選項。result_record_count
可選整數。此選項可用於獲取最多指定
result_record_count
的查詢結果。當指定result_offset
但未指定此參數時,Map服務會將其默認為max_record_count
。此參數的最大值是圖層的maxRecordCount
屬性的值。如果return_all_records
是True
(即默認情況下),則忽略此選項。return_all_records
可選的布爾值。當
True
時,查詢操作將調用該服務,直到返回所有滿足where_clause
的記錄。注意:如果return_all_records
為真,result_offset
和result_record_count
將被忽略。此外,如果return_count_only
、return_ids_only
或return_extent_only
是True
,則此參數將被忽略。historic_moment
可選整數。曆史性時刻查詢。此參數僅在圖層啟用歸檔且
supportsQueryWithHistoricMoment
屬性設置為true
時適用。此屬性在圖層資源中提供。注意:有關圖層屬性的完整說明,請參閱Query (Feature Service/Layer)。使用
properties
檢查圖層屬性。如果未指定
historic_moment
,則查詢將應用於當前要素。sql_format
可選字符串。
sql_format
參數可以是標準 SQL92,也可以使用底層數據存儲的本機 SQL。默認值為 none,這意味著 sql_format 取決於useStandardizedQuery
參數。值:none
|standard
|native
return_exceeded_limit_features
可選的布爾值。可選參數,默認為
true
。當設置為true
時,即使結果包含exceededTransferLimit: true
屬性,也會返回特征。當設置為 false 並使用
resultType = ‘tile’
進行查詢時,如果結果包括exceededTransferLimit: True
,則不會返回特征。這允許客戶端在不進行多次調用的情況下找到不再超過傳輸限製的分辨率。as_df
可選的布爾值。如果
True
,結果將返回為DataFrame
而不是FeatureSet
。range_values
可選列表。允許您從圖層中過濾指定範圍瞬間或範圍內的要素。
- 用法
>>> range_values = [ { "name": "range name", "value": <value> or [ <value1>, <value2> ] }, { "name": "range name 2", "value": <value> or [ <value3>, <value4>] } } ]
注意:在 value-range 情況下不允許使用 - 這意味著無窮大
# all features with values <= 1500 >>> range_values = {"name" : "range name", "value :[None, 1500]} # all features with values >= 1000 >>> range_values = {"name" : "range name", "value" : [1000, None]}
parameter_values
可選字典。允許您通過將值指定給這些圖層的預先編寫的參數化過濾器數組來過濾要素圖層。如果沒有為請求中的任何參數指定值,則會使用在創作期間分配的默認值。
當
parameterInfo
允許多個值時,您必須在數組中傳遞它們。注意:檢查層
properties
的parameterInfos
以獲取可用的參數化過濾器、它們的默認值和預期的數據類型。kwargs
可選字典。可以傳遞給查詢函數的可選參數。這將允許用戶傳遞未在函數上明確實現的附加參數。 Query (Map Service/Layer) 中記錄了可能參數的完整列表
例子:
# USAGE EXAMPLE >>> from arcgis.mapping import MapImageLayer, MapFeatureLayer >>> from arcgis.gis import GIS # connect to your GIS and get the web map item >>> gis = GIS(url, username, password) >>> map_image_item = gis.content.get("2aaddab96684405880d27f5261125061") >>> map_feature_layer = MapFeatureLayer.fromitem(item = map_image_item, layer_id = 2) >>> query_count = map_feature_layer.query(where "1=1", text = "Hurricane Data", units = "esriSRUnit_Meter", return_count_only = True, out_statistics = [ { "statisticType": "count", "onStatisticField": "Field1", "outStatisticFieldName": "Out_Field_Name1" }, { "statisticType": "avg", "onStatisticField": "Field2", "outStatisticFieldName": "Out_Field_Name2" } ], range_values= [ { "name": "range name", "value": [None, 1500] }, { "name": "range name 2", "value":[1000, None] } } ] ) >>> query_count <149>
相關用法
- Python ArcGIS MapTable.fromitem用法及代碼示例
- Python ArcGIS MapTour用法及代碼示例
- Python ArcGIS MapImageLayer.find用法及代碼示例
- Python ArcGIS MapImageLayerManager.update_tiles用法及代碼示例
- Python ArcGIS MapView.update用法及代碼示例
- Python ArcGIS MapImageLayerManager.delete_tiles用法及代碼示例
- Python ArcGIS MapView.layers用法及代碼示例
- Python ArcGIS MapView.basemap用法及代碼示例
- Python ArcGIS MapView.center用法及代碼示例
- Python ArcGIS MapView.save用法及代碼示例
- Python ArcGIS MapServiceLayer用法及代碼示例
- Python ArcGIS MapView.scale用法及代碼示例
- Python ArcGIS MapImageLayer.create_dynamic_layer用法及代碼示例
- Python ArcGIS MapView.rotation用法及代碼示例
- Python ArcGIS MapFeatureLayer.time_filter用法及代碼示例
- Python ArcGIS MapFeatureLayer.query用法及代碼示例
- Python ArcGIS MapImageLayer.identify用法及代碼示例
- Python ArcGIS MapView.zoom用法及代碼示例
- Python arcgis.mapping.MapImageLayerManager.import_tiles用法及代碼示例
- Python ArcGIS MapView.sync_navigation用法及代碼示例
- Python ArcGIS MapView.extent用法及代碼示例
- Python ArcGIS MapView.add_layer用法及代碼示例
- Python ArcGIS MapView.clear_graphics用法及代碼示例
- Python ArcGIS MapImageLayer.export_map用法及代碼示例
- Python ArcGIS MapFeatureLayer.fromitem用法及代碼示例
注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 arcgis.mapping.MapTable.query。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。