Chciałbym wziąć klasę cech wielokąta z wieloma nieregularnymi wielokątami i pozwolić, aby łuk rysował równoległe linie wewnątrz każdego wielokąta. Idealnie byłoby miło, gdyby Arc obliczył kąt najdłuższego boku wielokąta i narysował równoległe linie do tej strony, ale dla uproszczenia myślę, że gdybym mógł po prostu wprowadzić jeden kąt dla wszystkich równoległych linii, to byłoby łatwiejsze.
Tak więc moje podstawowe kryteria to kąt linii, szerokość między liniami, długość min./maks. I szerokość bufora z boków wielokątów.
Obraz w załączeniu, jeśli to pomaga.
arcgis-desktop
arcpy
Tx_Dan
źródło
źródło
Odpowiedzi:
Jak wspomina @cndnflyr, można to zrobić w Pythonie.
Interfejs narzędzia skryptowego:
Przykładowe dane wyjściowe:
źródło
Można to zrobić za pomocą Pythona, ale napisanie go zajęłoby trochę czasu.
Myślę, że najszybszym sposobem na wdrożenie go bez Pythona jest posiadanie szablonu pliku SHP tych równoległych linii. Miej kilka, jeśli potrzebujesz różnych szerokości, i po prostu użyj odpowiedniej dla tego wielokąta. Spraw, aby linie szablonu obejmowały wystarczającą powierzchnię, aby pokryć największy wielokąt, jaki napotkasz.
Kroki od 3 do 7 można modelować bez konieczności pisania kodu.
Do kodowania tego procesu można zastosować ten sam proces, ale zamiast linii szablonu, możesz narysować linie pod odpowiednim kątem, w odległości od siebie itp. Nie robiłem tego przez jakiś czas, ale myślę, że Pomogłaby biblioteka Python jak foremna . Po prostu upewnij się, że obejmuje większy obszar niż Wielokąt, i użyj narzędzi do automatycznej konwersji na polilinię, buforowania, wymazywania, zaznaczania linii spoza wieloboku i usuwania ich.
źródło