本文簡要介紹 python 語言中 arcgis.features.FeatureLayerCollection.extract_changes
的用法。
用法:
extract_changes(layers, servergen=None, layer_servergen=None, queries=None, geometry=None, geometry_type=None, in_sr=None, version=None, return_inserts=False, return_updates=False, return_deletes=False, return_ids_only=False, return_extent_only=False, return_attachments=False, attachments_by_url=False, data_format='json', change_extent_grid_cell=None, return_geometry_updates=None, fields_to_compare=None, out_sr=None)
返回:
包含 layerServerGens 和編輯數組的字典
應用程序的更改跟蹤機製。應用程序可以使用
extract_changes
來查詢對服務中的圖層和表所做的更改。注意:
對於從 ArcGIS Pro 2.2 或更高版本發布的基於企業地理數據庫的要素服務,
ChangeTracking
函數要求所有圖層和表都啟用存檔或分支版本化並具有 globalid 列。還可以為 ArcGIS Online 托管要素服務啟用更改跟蹤。如果服務中的所有層和表都具有ChangeTracking 能力,則可以使用
extract_changes
操作來獲取更改。Parameter
Description
layers
必填清單。要包含在輸出中的圖層列表(按索引值)和表。
servergen
必需列表(當 layer_servergen 不存在時)。於 11.0 引入。此參數將 servergens 設置為應用於圖層參數中包含的所有圖層。可以使用單代或一對代作為此參數的值。如果提供單個 servergen 值,則返回自該生成以來發生的所有更改。如果提供一對 serverGen 值,則返回第一代(最小值)和第二代(最大值)之間發生的更改。如果提供兩代,則該對中的第一個值預計是兩個值中較小的一個。當“extractChangesCapability”下的service-level“supportServerGens”屬性設置為“True”時,表示支持此參數。此操作需要隨請求提交“serverGens”或“layerServerGens”。
# Usage Example: servergen= [10500,11000]
layer_servergen
必需列表(當 servergen 不存在時)。 servergen 編號允許客戶端為從服務器接收到的更改指定最後一層生成編號(以毫秒為單位的 Unix 紀元時間值)。在此值之後所做的所有更改都將被返回。
minServerGen
: It is the min generation of the server data changes. Clients with layerServerGens that is less than minServerGen cannot extract changes and would need to make a full server/layers query instead of extracting changes.serverGen
: It is the current server generation number of the changes. Every changed feature has a version or a generation number that is changed every time the feature is updated.
- 用法:
servergen= [{“id”: <layerId1>, “serverGen”: <genNum1>}, {“id”: <layerId2>, “serverGen”: <genNum2>}]
該層的
id
值是來自FeatureLayerCollection
上的layers
屬性的層索引。serverGen
值是以毫秒為單位的 Unix 紀元時間戳值。# Usage Example: layer_servergen= [{"id": 0, "serverGen": 10500}, {"id": 1, "serverGen": 1100}, {"id": 2, "serverGen": 1200}]
queries
可選字典。除了圖層和幾何參數之外,
queries
參數還可用於進一步定義要返回的更改。此參數允許您在 per-layer 或 per-table 基礎上設置查詢屬性。如果圖層的 ID 存在於圖層參數中並且在圖層queries
中缺失,則返回與過濾器幾何相交的已更改特征。屬性包括以下內容:
where
- Defines an attribute query for a layer or table. The default is no where clause.useGeometry
- Determines whether or not to apply the geometry for the layer. The default is true. If set to false, features from the layer that intersect the geometry are not added.includeRelated
- Determines whether or not to add related rows. The default is true. The value true is honored only for queryOption=none. This is only applicable if your data has relationship classes. Relationships are only processed in a forward direction from origin to destination.queryOption
- Defines whether or how filters will be applied to a layer. The queryOption was added in 10.2. See the Compatibility notes topic for more information. Valid values areNone
,useFilter
, orall
. See also thelayerQueries
column in the Request Parameters table in the Extract Changes (Feature Service) help for details and code samples.
When the value is none, no feature are returned based on where and filter geometry.
If
includeRelated
is false, no features are returned.If
includeRelated
is true, features in this layer (that are related to the features in other layers in the replica) are returned.When the value is
useFilter
, features that satisfy filtering based on geometry andwhere
are returned. The value ofincludeRelated
is ignored.
# Usage Example: queries={Layer_or_tableID1:{"where":"attribute query", "useGeometry": true | false, "includeRelated": true | false}, Layer_or_tableID2: {.}}
geometry
可選
Geometry
/Extent
。用作更改的空間過濾器的幾何圖形。將返回與此幾何相交的圖層中所有更改的要素。幾何結構與ArcGIS REST API 返回的JSON geometry objects 的結構相同。除了 JSON 結構之外,對於信封和點,您可以使用更簡單的逗號分隔語法指定幾何。geometry_type
可選字符串。幾何參數指定的幾何類型。幾何類型可以是包絡、點、線或多邊形。默認幾何類型是信封。
值:
esriGeometryPoint
、esriGeometryMultipoint
、esriGeometryPolyline
、esriGeometryPolygon
、esriGeometryEnvelope
in_sr
可選整數。輸入幾何的空間參考。
out_sr
可選整數/字符串。返回更改的輸出空間參考。
version
可選字符串。如果啟用了分支版本控製,用戶可以指定要從中提取更改的分支版本名稱。
return_inserts
可選布爾值。如果為 true,將返回新插入的特征。默認值為假。
return_updates
可選布爾值。如果為 true,將返回更新的函數。默認值為假。
return_deletes
可選布爾值。如果為 true,則將返回已刪除的要素。默認值為假。
return_ids_only
可選布爾值。如果為 true,則響應僅包含對象 ID 數組。默認值為假。
return_attachments
可選布爾值。如果為 true,則在響應中返回附件更改。否則,不包括附件。默認值為假。僅當要素服務具有附件時,此參數才適用。
attachments_by_url
可選布爾值。如果為 true,將為每個返回的附件提供對 URL 的引用。否則,附件將嵌入響應中。默認值為真。
data_format
可選字符串。響應中返回的更改的格式。默認為 json。值:sqllite 或 json
change_extent_grid_cell
可選字符串。為了優化本地化更改範圍,值介質是一個 8x8 網格,用於限製更改範圍。僅當
return_extent_only
為真時使用。默認值為無。值:無、大、中或小return_geometry_updates
可選布爾值。如果為真,則響應包括一個“hasGeometryUpdates”屬性,該屬性為每個圖層設置為真,其中更新具有幾何變化。默認值為假。
如果圖層的編輯僅包括對幾何以外的字段的插入、刪除或更新,則 hasGeometryUpdates 未設置或返回為 false。當一個圖層有多行更新時,隻需要包含一個幾何更改即可將
hasGeometryUpdates
設置為真。fields_to_compare
可選列表。於 11.0 引入。此參數允許您確定是否有任何字段數組已更新。此參數可接受的值是一個字段數組,其中包含要評估的字段。響應包括一個 fieldUpdates 數組,其中包含包含對指定字段所做的任何更新的行。如果沒有對任何字段進行更新,則 fieldUpdates 數組為空。
例子:
#Usage Example for extracting all changes to a feaature layer in a particular version since the time the Feature Layer was created. from arcgis.gis import GIS from arcgis.features import FeatureLayerCollection >>> gis = GIS(<url>, <username>, <password>) # Search for the Feature Service item >>> fl_item = gis.content.search('title:"my_feature_layer" type:"Feature Layer"')[0] >>> created_time = fl_item.created # Get the Feature Service url >>> fs=gis.content.search('title:"my_feature_layer" type:"Feature"')[0].url # Instantiate the a FeatureLayerCollection from the url >>> flc=FeatureLayerCollection(fs, gis) # Extract the changes for the version >>> extracted_changes=flc.extract_changes(layers=[0], servergen=[{"id": 0, "serverGen": created_time}], version="<version_owner>.<version_name>", return_ids_only=True, return_inserts=True, return_updates=True, return_deletes=True, data_format="json") >>> extracted_changes {'layerServerGens': [{'id': 0, 'serverGen': 1600713614620}], 'edits': [{'id': 0, 'objectIds': {'adds': [], 'updates': [194], 'deletes': []}}]}
相關用法
- Python ArcGIS FeatureLayer.manager用法及代碼示例
- Python ArcGIS FeatureLayer.delete_features用法及代碼示例
- Python ArcGIS FeatureLayer.fromitem用法及代碼示例
- Python ArcGIS FeatureLayer.query_related_records用法及代碼示例
- Python ArcGIS FeatureLayer用法及代碼示例
- Python ArcGIS FeatureLayer.query_date_bins用法及代碼示例
- Python ArcGIS FeatureLayer.get_unique_values用法及代碼示例
- Python ArcGIS FeatureLayer.generate_renderer用法及代碼示例
- Python ArcGIS FeatureLayer.append用法及代碼示例
- Python ArcGIS FeatureLayer.calculate用法及代碼示例
- Python ArcGIS FeatureLayer.edit_features用法及代碼示例
- Python ArcGIS FeatureLayer.query用法及代碼示例
- Python ArcGIS Feature.geometry用法及代碼示例
- Python ArcGIS Feature.set_value用法及代碼示例
- Python ArcGIS FeatureCollection.from_featureset用法及代碼示例
- Python ArcGIS Feature用法及代碼示例
- Python ArcGIS Feature.attributes用法及代碼示例
- Python ArcGIS FeatureSet.save用法及代碼示例
- Python ArcGIS Feed.metrics用法及代碼示例
- Python ArcGIS FeedsManager.get用法及代碼示例
- Python ArcGIS FeedsManager.create用法及代碼示例
- Python ArcGIS FeedsManager.items用法及代碼示例
- Python ArcGIS Feed.start用法及代碼示例
- Python ArcGIS Feed.stop用法及代碼示例
- Python ArcGIS Feed.status用法及代碼示例
注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 arcgis.features.FeatureLayerCollection.extract_changes。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。