Arcpy Geometry nesneleri gerçek eğrileri desteklemese de, 10.3'te Esri, REST API'sında True Curves uyguladı ve bu nedenle onlar için FeatureSets'te JSON desteği uygulamak zorunda kaldı. Böylece bir JSON yapısında bir eğri oluşturursanız, bunu sizin için yapmaya başlatabilirsiniz .
İşte bir örnek: gerçek eğrilerle JSON dosyası oluşturun (bu dairesel bir yay ve Bezier eğrisi kullanır), şöyle bir şey:
{ 'fieldAliases': {
'Id': 'Id',
'FID': 'FID'
},
'fields': [{
'alias': 'FID',
'type': 'esriFieldTypeOID',
'name': 'FID'
}, {
'alias': 'Id',
'type': 'esriFieldTypeInteger',
'name': 'Id'
}],
'displayFieldName': '',
'spatialReference': {
'wkid': 103734,
'latestWkid': 103734
},
'geometryType': 'esriGeometryPolyline'
'features': [{
'geometry': {
"curvePaths":[[
[6,3],[5,3],
{"b":[[3,2],[6,1],[2,4]]},
[1,2],
{"a":[[0,2],[0,3],0,0,2.094395102393195,1.83,0.33333333]}
]]
},
'attributes': {
'Id': 0,
'FID': 0
}
}],
}
Ardından, bunu bir özellik kümesine yükleyin ve bir Özellik sınıfına kaydedin.
fs = arcpy.FeatureSet()
fs.load(r'C:\path_to_your_json_file.json')
arcpy.management.CopyFeatures(fs, r'in_memory\test_curve')
Ve patlama, gerçek eğrileriniz var! ArcMap'te oluşturduğu budur:
Yani sizin durumunuzda, orijinal özellikleri bir özellik kümesine çevirip JSON ile oynayarak veya bir arama imlecindeki satırlar arasında yineleme yaparak json yapısı oluşturabilirsiniz. Matematik istediğini almak için biraz zor olabilir, ama kesinlikle yapılabilir.
Tam özellik kümesi oluşturmak zorunda olmadığınızı da belirtmeliyim, arcpy.AsShape(geojson, True)
bir geometri nesnesini geri almak için sadece JSON geometrisini doğrudan da geçirebilirsiniz .