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


Python ArcGIS FeatureLayer.query用法及代碼示例


本文簡要介紹 python 語言中 arcgis.features.FeatureLayer.query 的用法。

用法:

query(where='1=1', out_fields='*', time_filter=None, geometry_filter=None, return_geometry=True, return_count_only=False, return_ids_only=False, return_distinct_values=False, return_extent_only=False, group_by_fields_for_statistics=None, statistic_filter=None, result_offset=None, result_record_count=None, object_ids=None, distance=None, units=None, max_allowable_offset=None, out_sr=None, geometry_precision=None, gdb_version=None, order_by_fields=None, out_statistics=None, return_z=False, return_m=False, multipatch_option=None, quantization_parameters=None, return_centroid=False, return_all_records=True, result_type=None, historic_moment=None, sql_format=None, return_true_curves=False, return_exceeded_limit_features=None, as_df=False, datum_transformation=None, **kwargs)

返回:

包含與查詢匹配的函數的 FeatureSet,除非指定了其他返回類型,例如 return_count_onlyreturn_extent_onlyreturn_ids_only

query 方法根據sql 語句查詢FeatureLayer

Parameter

Description

where

可選字符串。默認值為 1=1。選擇sql語句。

out_fields

可選的要返回的字段名稱列表。字段名稱可以指定為字段名稱列表或逗號分隔的字符串。默認值為“*”,它返回所有字段。

注意:

如果將 return_count_onlyreturn_id_onlyreturn_extent_only 指定為 True,請不要指定該參數以避免錯誤。

object_ids

可選字符串。要查詢的該圖層或表的對象ID。對象 ID 值應該是逗號分隔的字符串。

distance

可選整數。輸入幾何的緩衝距離。距離單位由單位指定。例如,如果距離為 100,則查詢幾何是一個點,單位設置為米,並返回該點 100 米內的所有點。

units

可選字符串。計算緩衝距離的單位。如果未指定單位,則單位來自幾何空間參考。如果未指定幾何空間參考,則單位派生自要素服務數據空間參考。此參數僅在 supportsQueryWithDistance 為 true 時適用。值:`esriSRUnit_Meter | esriSRUnit_StatuteMile |

esriSRUnit_Foot | esriSRUnit_Kilometer | esriSRUnit_NauticalMile | esriSRUnit_USNauticalMile`

time_filter

可選列表。格式為 [<startTime>, <endTime>],使用 datetime.date、datetime.datetime 或時間戳(以毫秒為單位)。語法:time_filter=[<開始時間>, <結束時間>] ;指定為

datetime.date, datetime.datetime or timestamp in milliseconds

geometry_filter

filters 中可選。允許根據與另一個幾何體的空間關係來過濾信息。

max_allowable_offset

可選浮點數。此選項可用於指定 max_allowable_offset 用於概括查詢操作返回的幾何。 max_allowable_offset 以out_sr 為單位。如果未指定out_sr,則假定max_allowable_offset 以層的空間參考為單位。

out_sr

可選整數。返回幾何的空間參考的 WKID。

geometry_precision

可選整數。此選項可用於指定查詢操作返回的響應幾何中的小數位數。這僅適用於 X 和 Y 值(不適用於 m 或 z-values)。

gdb_version

可選字符串。要查詢的地理數據庫版本。僅當圖層的 isDataVersioned 屬性為 true 時,此參數才適用。如果未指定,則查詢將應用於已發布Map的版本。

return_geometry

可選的布爾值。如果為真,幾何圖形將隨查詢返回。默認為真。

return_distinct_values

可選的布爾值。如果為真,它會根據out_fields 中指定的字段返回不同的值。僅當圖層的 supportsAdvancedQueries 屬性為 true 時,此參數才適用。

return_ids_only

可選的布爾值。默認為假。如果為 true,則響應僅包含對象 ID 數組。否則,響應是一個特征集。

return_count_only

可選的布爾值。如果為真,則響應僅包括查詢將返回的計數(特征/記錄的數量)。否則,響應是一個特征集。默認值為假。此選項取代 returnIdsOnly 參數。如果 returnCountOnly = true,則響應將返回計數和範圍。

return_extent_only

可選的布爾值。如果為真,則響應僅包括查詢將返回的要素的範圍。如果 returnCountOnly=true,則響應將返回計數和範圍。默認值為假。僅當圖層的 supportsReturningQueryExtent 屬性為 true 時,此參數才適用。

order_by_fields

可選字符串。需要對其特征/記錄進行排序的一個或多個字段名稱。分別使用 ASC 或 DESC 進行升序或降序,跟隨每個字段來控製排序。例如:STATE_NAME ASC、種族 DESC、性別

注意:

如果將 return_count_onlyreturn_id_onlyreturn_extent_only 指定為 True,請不要指定該參數以避免錯誤。

group_by_fields_for_statistics

可選字符串。一個或多個字段名稱,需要對其值進行分組以計算統計信息。示例:STATE_NAME,性別

out_statistics

可選的詞典列表。要計算的一個或多個基於字段的統計數據的定義。

用法:

[
{

“statisticType”:“<count |總和 |分鍾 |最大 |平均 |標準開發 | var>”,“onStatisticField”:“Field1”,“outStatisticFieldName”:“Out_Field_Name1”

}, {

“statisticType”: “<count | sum | min | max | avg | stddev | var>”, “onStatisticField”: “Field2”, “outStatisticFieldName”: “Out_Field_Name2”

}

]

statistic_filter

可選的 StatisticFilter 實例。可以添加一個或多個基於字段的統計數據的定義,例如statisticType、onStatisticField 或 outStatisticFieldName。

用法:

sf = StatisticFilter() sf.add(statisticType=”count”, onStatisticField=”1”, outStatisticFieldName=”total”) sf.filter

return_z

可選的布爾值。如果為 true,則如果要素具有 Z 值,則 Z 值將包含在結果中。否則,不返回 Z 值。默認值為假。

return_m

可選的布爾值。如果為真,如果特征具有 M 個值,則 M 個值將包含在結果中。否則,不返回 M 值。默認值為假。

multipatch_option

可選的 x/y 足跡。此選項規定如何返回多麵體要素的幾何。

result_offset

可選整數。該選項可用於通過跳過指定數量的記錄並從下一條記錄開始(即resultOffset + 1th)來獲取查詢結果。如果 return_all_records 為 True(即默認情況下),則忽略此選項。

result_record_count

可選整數。此選項可用於獲取最多指定result_record_count 的查詢結果。當指定result_offset 但未指定此參數時,Map服務默認為max_record_count。此參數的最大值是圖層的max_record_count 屬性的值。如果 return_all_records 為 True(即默認情況下),則忽略此選項。

quantization_parameters

可選字典。用於將幾何體投影到虛擬網格上,可能代表屏幕上的像素。

return_centroid

可選的布爾值。用於返回與返回的每個特征關聯的幾何質心。如果為真,則結果包括幾何質心。默認值為假。

return_all_records

可選的布爾值。當為 True 時,查詢操作將調用服務,直到返回所有滿足 where_clause 的記錄。注意:如果 return_all_records 為 True,則 result_offset 和 result_record_count 將被忽略。此外,如果 return_count_only、return_ids_only 或 return_extent_only 為 True,則此參數將被忽略。

result_type

可選字符串。 result_type 參數可用於控製查詢操作返回的特征數量。值:無 |標準 |瓦

historic_moment

可選整數。曆史性時刻查詢。此參數僅適用於圖層啟用歸檔且 supportsQueryWithHistoricMoment 屬性設置為 true 的情況。此屬性在圖層資源中提供。

如果未指定historic_moment,則查詢將應用於當前要素。

sql_format

可選字符串。 sql_format 參數可以是標準 SQL92 標準,也可以使用底層數據存儲本機的本機 SQL。默認值為 none,這意味著 sql_format 取決於 useStandardizedQuery 參數。值:無 |標準 |本國的

return_true_curves

可選的布爾值。設置為 true 時,返回輸出幾何圖形中的真實曲線。當設置為 false 時,曲線將轉換為致密的多段線或多邊形。

return_exceeded_limit_features

可選的布爾值。可選參數,默認為 true。設置為 true 時,即使結果包含“exceededTransferLimit”,也會返回特征:True。

當設置為 false 並且使用 resultType = 切片函數進行查詢時,當結果包括“exceededTransferLimit”時,不返回:True。這允許客戶端在不進行多次調用的情況下找到不再超過傳輸限製的分辨率。

as_df

可選布爾值。如果為 True,結果將作為 DataFrame 而不是函數集返回。

datum_transformation

可選整數/字典。當out_sr 與圖層的空間參考不同時,此參數在投影結果中的幾何圖形時應用基準麵變換。指定轉換時,您需要考慮哪種基準麵轉換最適合將圖層(而非要素服務)投影到圖層屬性中的 outSRsourceSpatialReference 屬性。有關有效基準麵轉換 ID 值和已知文本字符串的列表,請參閱Coordinate systems and transformations。有關基準轉換的更多信息,請參閱Project operation 中的轉換參數。

例子

Inputs

Description

WKID

Integer. Ex: datum_transformation=4326

WKT

Dict. Ex: datum_transformation={“wkt”: “<WKT>”}

Composite

Dict. Ex: datum_transformation=```{‘geoTransforms’:[{‘wkid’:<id>,’forward’:<true|false>},{‘wkt’:’<WKT>’,’forward’:<True|False>}]}```

kwargs

可選字典。可以傳遞給查詢函數的可選參數。這將允許用戶傳遞未在函數上明確實現的附加參數。查詢 REST API 中記錄了可用函數的完整列表。

示例 1:

# Usage Example with only a "where" sql statement

>>> feat_set = feature_layer.query(where = "OBJECTID= 1")
>>> type(feat_set)
<arcgis.Features.FeatureSet>
>>> feat_set[0]
<Feature 1>

示例 2:

# Usage Example of an advanced query returning the object IDs instead of Features

>>> id_set = feature_layer.query(where = "OBJECTID1",
                                   out_fields = ["FieldName1, FieldName2"],
                                   distance = 100,
                                   units = 'esriSRUnit_Meter',
                                   return_ids_only = True)

>>> type(id_set)
<Array>
>>> id_set[0]
<"Item_id1">

示例 3:

# Usage Example of an advanced query returning the number of features in the query

>>> search_count = feature_layer.query(where = "OBJECTID1",
                                   out_fields = ["FieldName1, FieldName2"],
                                   distance = 100,
                                   units = 'esriSRUnit_Meter',
                                   return_count_only = True)

>>> type(search_count)
<Integer>
>>> search_count
<149>

示例 4:

# Usage Example with "out_statistics" parameter

>>> stats = [{
        'onStatisticField': "1",
        'outStatisticFieldName': "total",
        'statisticType': "count"
    }]
>>> feature_layer.query(out_statistics=stats, as_df=True) # returns a DataFrame containting total count

示例 5:

# Usage Example with "StatisticFilter" parameter

>>> from arcgis._impl.common._filters import StatisticFilter
>>> sf1 = StatisticFilter()
>>> sf1.add(statisticType="count", onStatisticField="1", outStatisticFieldName="total")
>>> sf1.filter # This is to print the filter content
>>> feature_layer.query(statistic_filter=sf1, as_df=True) # returns a DataFrame containing total count

相關用法


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