Arcpy Geometry 객체는 실제 곡선을 지원하지 않지만 10.3에서 Esri는 REST API에서 True Curves를 구현 했으므로 FeatureSets에서 JSON 지원을 구현해야했습니다. 따라서 JSON 구조에서 곡선 을 만드는 경우이 작업을 수행하기 위해 아크 피를 "속일"수 있습니다 .
예를 들면 다음과 같습니다. 실제 곡선 (원호와 베 지어 곡선을 사용)으로 JSON 파일을 만듭니다.
{ '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
}
}],
}
그런 다음,이를 기능 세트에로드하여 Feature 클래스에 저장하십시오.
fs = arcpy.FeatureSet()
fs.load(r'C:\path_to_your_json_file.json')
arcpy.management.CopyFeatures(fs, r'in_memory\test_curve')
그리고 붐, 당신은 진정한 곡선을 가지고 있습니다! 이것이 ArcMap에서 만든 것입니다.
따라서 귀하의 경우 원래 기능을 기능 세트로 캐스팅하고 JSON으로 재생하거나 검색 커서의 행을 반복하여 json 구조를 작성할 수 있습니다. 수학은 원하는 것을 얻는 데 약간 까다로울 수 있지만 확실히 가능합니다.
또한 전체 기능 세트를 구성 할 필요가 없으며 JSON 형상을 직접 전달하여 arcpy.AsShape(geojson, True)
형상 객체를 다시 가져올 수 있습니다.