当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。