जबकि चापी ज्यामिति ऑब्जेक्ट 10.3 पर सच्चे वक्रों का समर्थन नहीं करते हैं, एसेरी ने REST API में ट्रू कर्व्स लागू किया, और इसलिए फ़ीचरसेट्स में उनके लिए 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
}
}],
}
फिर, उसे एक फीचर सेट में लोड करें और उसे एक फीचर क्लास में सेव करें।
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 ज्यामिति को सीधे arcpy.AsShape(geojson, True)
एक ज्यामिति ऑब्जेक्ट को वापस पाने के लिए पास कर सकते हैं ।