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


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


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

用法:

query(where='1=1', text=None, 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, range_values=None, parameter_values=None, **kwargs)

返回:

A FeatureSet 包含與查詢匹配的特征,除非另一個

query 方法基於 sql 語句查詢Map要素圖層。

Parameter

Description

where

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

text

可選字符串。文字搜索文本。如果圖層具有與之關聯的顯示字段,則服務器會在此字段中搜索此文本。

out_fields

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

object_ids

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

distance

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

units

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

值選擇:

esriSRUnit_Meter | esriSRUnit_StatuteMile | esriSRUnit_Foot | esriSRUnit_Kilometer | esriSRUnit_NauticalMile | esriSRUnit_USNauticalMile

time_filter

startTimeendTime 值的可選列表。 :句法:

>>> time_filter=[<startTime>, <endTime>]
注意:

指定為 datetime.datedatetime.datetimetimestamp 以毫秒為單位

geometry_filter

可選的 filter 對象。允許根據與另一個幾何的空間關係過濾信息。

max_allowable_offset

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

out_sr

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

geometry_precision

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

gdb_version

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

return_geometry

可選的布爾值。如果 true ,幾何圖形將與查詢一起返回。默認為 true

return_distinct_values

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

return_ids_only

可選的布爾值。默認為 False 。如果 True ,則響應僅包含對象 ID 數組。否則,響應為 FeatureSet

return_count_only

可選布爾值。如果 True ,則響應僅包含滿足查詢的要素/記錄的計數。否則,響應是 FeatureSet 。默認為 False 。此選項取代returns_ids_only 參數。如果是 returnCountOnly = True ,響應將返回計數和範圍。

return_extent_only

可選的布爾值。如果 True ,響應僅包括滿足查詢的特征的範圍。如果 returnCountOnly=true ,響應將返回計數和範圍。默認值為 False 。僅當圖層的 supportsReturningQueryExtent 屬性為 true 時,此參數才適用。

order_by_fields

可選字符串。一個或多個用於對結果進行排序的字段名稱。在要排序的每個字段之後,分別使用 ASCDESC 進行升序或降序:

>>> 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"
                        }
                     ]

return_z

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

return_m

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

multipatch_option

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

result_offset

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

result_record_count

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

quantization_parameters

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

return_centroid

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

return_all_records

可選的布爾值。當 True 時,查詢操作將調用該服務,直到返回所有滿足 where_clause 的記錄。

注意:

result_offsetresult_record_count 如果設置為 True 將被忽略。如果 return_count_onlyreturn_ids_onlyreturn_extent_onlyTrue ,則忽略此參數。

result_type

可選字符串。控製操作返回的特征數。選項:None | standard | tile

注意:

有關完整說明,請參閱Query (Feature Service/Layer)

historic_moment

可選整數。曆史性時刻查詢。此參數僅在圖層啟用歸檔且 supportsQueryWithHistoricMoment 屬性設置為 true 時適用。該屬性在圖層的 properties 資源中提供。如果未指定,則查詢將應用於當前函數。

sql_format

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

return_true_curves

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

return_exceeded_limit_features

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

當設置為 False 並使用 resultType = tile 查詢時,如果結果包括 exceededTransferLimit: True ,則不會返回特征。這允許客戶端在不進行多次調用的情況下找到不再超過傳輸限製的分辨率。

as_df

可選的布爾值。如果 True ,結果將返回為 DataFrame 而不是 FeatureSet

datum_transformation

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

例子:

Inputs

Description

WKID

整數。

>>> datum_transformation=4326

WKT

字典。

>>> datum_transformation = {"wkt": "<WKT>"}

Composite

字典。

>>> datum_transformation = {"geoTransforms" : [
                                               {"wkid" : "<id>",
                                                "forward" : True | False},
                                               {"wkt" : "WKT",
                                                "forward" : True: False}
                                              ]
                           }

range_values

可選列表。允許您從圖層中過濾指定範圍瞬間或範圍內的要素。

>>> range_values = [
                    {
                     "name": "range name" ,
                     # single value or a value-range
                     "value": <value> or [ <value1>, <value2> ]

                    },
                    {
                     "name": "range name 2",
                     "value": <value> or  [ <value3>, <value4> ]
                    }
                   ]
注意:

None 允許在 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 允許多個值時,您必須在數組中傳遞它們。

注意:

檢查 layer resources 中的 parameterInfos 以獲取可用的參數化過濾器、它們的默認值和預期的數據類型。

kwargs

可選字典。可以傳遞給查詢函數的可選參數。這將允許用戶傳遞未在函數上明確實現的附加參數。 Query (Feature Service/Layer) 記錄了可用函數的完整列表。

指定返回類型,例如 count

例子:

# 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>

相關用法


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