Saya menghadapi satu masalah di ArcGIS. Saya bekerja pada basis data navigasi. Dalam basis data kami, jalan jalur tunggal diwakili oleh satu Jalur, sedangkan jalan multi-jalur (jalan dengan pembagi di tengah) diwakili oleh dua garis paralel (garis berwarna merah pada gambar).
Saya memiliki titik shapefile dengan beberapa titik jatuh di dalam jalan multi-Lane dan beberapa di luar.
Saya ingin membuat skrip ArcPy yang akan menemukan titik-titik yang berada di dalam Multi-Lane Streets. yaitu antara garis-garis paralel ini (ditandai dalam gambar).
Saya tidak tahu bagaimana mencapai ini, Adakah yang bisa membantu saya?
Saya melakukan beberapa latihan di atasnya dan saya menemukan bahwa membuat buffer di satu sisi garis dapat membuat di dalam Multi-Lane polygon (Ditampilkan dalam Gambar).
tetapi sekarang masalahnya adalah, poligon sebenarnya melintasi garis (yaitu tumpang tindih batas multi-jalur). sehingga akan menangkap poin yang tidak perlu. apakah ada cara untuk menyelaraskan poligon ini ke garis jalan?
Catatan: integrasi tidak akan berfungsi di sini, karena ia juga memindahkan garis jalan. saya hanya perlu menyelaraskan poligon ke garis jalan.
sumber
Jawaban:
Saya akan mencoba di bawah ini algoritma arcpy (bahkan manual!)
sumber
Saya akan mengatakan ini adalah latihan geometris.
KODE PSEUDO:
Seperti yang dapat dilihat ada kasus khusus - titik hitam dilingkari:
Semua kasus di atas sangat tidak mungkin, namun tampaknya opsi teraman adalah bekerja dengan 2 jalan saja, yaitu mengekspornya ke kelas fitur yang terpisah. Kasus 3 adalah yang lucu, kita akan membiarkannya kebetulan, karena jarak terpendek ke garis tidak pernah benar nol, dengan demikian arah sinar 'berlawanan' yang menghubungkan 2 titik dapat ditemukan.
Implementasi python:
Ada solusi lain yang mungkin lebih elegan. Ini melibatkan triangulasi. Beri tahu saya jika ini menarik dan saya akan memperbarui jawaban saya
sumber
Karena jalanannya paralel, saya berasumsi mereka dibuat dengan
Copy Parallel
alat di bilah alat Edit sehingga membuat sepasang garis memiliki arah yang sama. Kita kemudian dapat beralih di atas koordinat baris pertama dan menambahkannya ke poligon dan kemudian beralih ke kebalikan dari baris kedua. Pasti ada cara yang lebih baik untuk mendekati meraih pasangan garis; pendekatan OID berfungsi, tetapi tidak terlalu cantik.Dari sana, itu panggilan ke Intersect / Select Layer dengan lokasi / apa pun. Perhatikan bahwa
S
poligon yang berbentuk tidak sempurna karena saya menggambar secara bebas dan ada beberapa busur yangexplode_to_points
tidak menanganinya dengan baik. Jalankan sajaDensify
atau sederajat.sumber
m
resolusi, multi-bagian, dll.). Saya tidak tahu bagaimana fitur seperti ini benar-benar diwakili dalam jaringan.