Saya memiliki serangkaian poligon yang ingin saya putar.
Setiap poligon memiliki sudut putar dan titik jangkar (koordinat xy) yang disimpan sebagai nilai bidang.
Seperti yang terjadi, semua titik jangkar berada di puncak poligon.
Apa cara terbaik untuk melakukan ini menggunakan ArcGIS untuk Desktop dan ArcPy?
Saya tahu kita dapat memutarnya ketika dalam mode pengeditan, tetapi saya tidak ingin melakukan semuanya secara manual karena semuanya berbeda.
Saya lebih suka jawaban Python sehingga saya bisa mengotomatisasi dan membangunnya ke dalam alur kerja saya.
arcpy
arcgis-10.0
dklassen
sumber
sumber
Jawaban:
Dengan asumsi Anda menggunakan sistem koordinat yang diproyeksikan ... (menjadi jauh lebih rumit jika tidak)
Titik rotasi yang diberikan (X, Y) dan sudut rotasi t, Anda perlu memutar setiap titik dalam poligon secara berurutan. Dengan asumsi poligon dibangun dari titik-titik dalam set sedemikian sehingga set = [(x0, y0), (x1, y1), (x2, y2) ...]
Anda perlu memutar setiap titik di set, secara berurutan, untuk membentuk set '= [(x0', y0 '), (x1', y1 '), (x2', y2 ') ...]
Untuk memutar, pertama Anda harus mengubah sistem koordinat ke asal dengan memindahkan titik rotasi ke (0,0). (x, y) adalah titik yang akan diputar.
Ini harus cukup mudah untuk diterjemahkan menjadi skrip python.
sumber
Berikut adalah diskusi dari Forum Esri yang mungkin menjadi solusi untuk Anda. Cari respons Esri. Ini melibatkan konversi poligon menjadi raster, menggunakan alat Rotate raster, dan mengkonversi kembali ke poligon. Namun, mungkin ada beberapa kekhawatiran tentang batas-batas poligon yang kacau ketika Anda mengkonversi bolak-balik antara raster / vektor.
Berita baiknya adalah semuanya dapat dilakukan dengan Python tanpa memanggil ArcObjects. Dan Anda harus dapat menggunakan SearchCursor untuk mengambil sudut rotasi dan titik jangkar dari tabel atribut.
Pokoknya, hanya alternatif yang mungkin.
sumber