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