Jako tło to pytanie powstało z próby odpowiedzi na pytanie: Jak wygenerować nakładające się wielokąty z linii wyprowadzanych z narzędzia Tabela do elipsy?
Za pomocą GUI ArcMap 10.1 bardzo łatwo jest digitalizować prawdziwe wielokąty krzywej do klasy obiektów geobazy za pomocą narzędzia do budowy Ellipse, ale ...
Czy możliwe jest pisanie wielokątów eliptycznych z prawdziwą krzywą podczas odczytywania wierszy (arcpy.da.SearchCursor) z tabeli zawierającej punkt środkowy, oś główną, oś podrzędną i azymut dla każdego z nich?
Miałem nadzieję, że w tym celu może być dostępny token z arcpy.da.InsertCursor , ale SHAPE@
wydaje się, że jest ograniczony przez to, co obsługuje obiekt Geometry , i to nie wydaje się zawierać prawdziwych krzywych.
arcpy
arcgis-10.1
geometry
ellipse
true-curves
PolyGeo
źródło
źródło
Odpowiedzi:
Podczas gdy obiekty Arcpy Geometry nie obsługują prawdziwych krzywych, w wersji 10.3 Esri zaimplementowała Prawdziwe krzywe w interfejsie API REST, a zatem musiała zaimplementować dla nich obsługę JSON w FeatureSets. Możesz więc „oszukać” arkady, aby zrobić to za Ciebie, jeśli utworzysz krzywą w strukturze JSON .
Oto przykład: utwórz plik JSON z prawdziwymi krzywymi (używa to łuku kołowego i krzywej Beziera), mniej więcej tak:
Następnie załaduj to do zestawu funkcji i zapisz w klasie elementów.
I bum, masz prawdziwe krzywe! Oto, co stworzył w ArcMap:
Więc w twoim przypadku, być może możesz zbudować strukturę json, albo rzutując oryginalne funkcje do zestawu funkcji i grając JSON, lub podczas iteracji między wierszami kursora wyszukiwania. Matematyka może być trochę trudna, aby uzyskać to, czego chcesz, ale na pewno jest wykonalna.
Powinienem również wspomnieć, że nie musisz tworzyć pełnego zestawu funkcji, możesz po prostu przekazać geometrię JSON również bezpośrednio do,
arcpy.AsShape(geojson, True)
aby odzyskać obiekt geometrii.źródło
Napotkaliśmy ten sam problem, gdy musieliśmy narysować setki paczek z legalnych opisów do geobazy. Narzędzia COGO były jedyną rzeczą, która pozwoliłaby nam rysować i zachować prawdziwe krzywe. Niestety narzędzia COGO nie są skryptowalne.
Byliśmy jednak w stanie przekonwertować opisy prawne na format txt, dzięki czemu mogliśmy następnie załadować je do okna trawersu, aby utworzyć nasze kształty. W zależności od formatu tabeli możesz (używając Pythona) przekonwertować tabele na txt, a następnie załadować je do okna trawersu.
Dzisiaj próbowałem zaimportować prawdziwe kontury krzywej do FGDB i natknąłem się na dodatek do konwersji Curve . Nie jestem pewien, czy to pomaga, ale uznałem, że jest to przydatne do manipulowania prawdziwymi krzywymi.
źródło