Garis Agregat Berdasarkan Jarak antar Segmen


12

Saya memiliki peta dasar VectorTile yang saya optimalkan, (bekerja untuk mengurangi ukuran ubin individu), potongan utama ukuran ubin adalah data jalan (geometri dan atribut). Saya sedang berupaya menyederhanakan geometri jalan individu berdasarkan Tingkat Zoom , dan menggabungkan jalan berdasarkan tingkat zoom juga.

Jalan disimpan dalam tabel Postgis (tabel individual untuk setiap tingkat zoom) dan saya ingin menggabungkan jalan berdasarkan tingkat zoom yang akan ditampilkan. Misalnya, dalam tabel Tingkat Zoom 5 saya ingin mengagregasi jalan yang berada dalam jarak tertentu satu sama lain, dan membuat satu baris untuk segmen jalan: masukkan deskripsi gambar di sini

Karena tidak mungkin untuk melihat jalan individu pada tingkat zoom tersebut: masukkan deskripsi gambar di sini

Bagaimana saya bisa mengagregasi geometri jalan berdasarkan jarak antar ruas jalan?

PS: Saya sedang mengerjakan PostGIS dan QGIS di Linux, tetapi saya terbuka untuk solusi menggunakan platform atau teknologi Open Source apa pun


Apakah jalan memiliki ID umum misalnya dua jalur pada level zoom 5 pada A50 diwakili oleh dua garis, tetapi pada level 4 oleh satu lin dan mereka semua memiliki "A50" sebagai atribut mereka?
AnserGIS

Mereka diwakili oleh dua garis di semua level zoom. Jalan raya dan jalan tol mereka akan memiliki atribut yang sama seperti "M-2" untuk Motorways.
Hasan Mustafa

Jawaban:


5

Anda dapat mencoba mencari di opsi OS ini, Skeletron , itu:

menggeneralisasi kumpulan garis ke tingkat zoom mercator bola tertentu dan ketepatan piksel, menggunakan penyangga poligon dan diagram voronoi

Ini didasarkan dari sebuah makalah tahun 1996 oleh Alnoor Ladak dan Roberto B. Martinez, "Penurunan Otomatis dari Jalan Akurasi Tinggi Centrelines Thiessen Polygons Technique"

Ada beberapa ketergantungan yang dibutuhkan:

Ketergantungan yang diperlukan:
- qhull binary ( http://www.qhull.org )
- bentuk 1.2+ ( http://pypi.python.org/pypi/Shapely )
- pyproj ( http://code.google.com/p / pyproj )
- networkx 1.5+ ( http://networkx.lanl.gov )
- StreetNames 0.1+ ( https://github.com/nvkelso/map-label-style-manual/tree/master/tools/street_names )

Catatan: Ini adalah model / alat yang lebih lama yang dapat diterapkan, hanya sebagai referensi untuk Anda jelajahi.


1
Saya pikir skeletron bisa menjadi cara untuk pergi, tetapi balasan Anda hanya salinan dari file readme dan tautan ke situs web esri sudah mati. Di sini tautan untuk menunjukkan apa yang dilakukannya untuk peta: kartographie.geo.tu-dresden.de/downloads/ica-gen/workshop2004/… . itu terlihat sangat bagus tetapi ketika saya mencoba menggunakannya saya tidak tahu bagaimana menggunakannya. Saya tidak menemukan dokumentasi kecuali beberapa suap dengan perintah use atau setup.py --help ... Jika seseorang menjelaskan bagaimana menggunakan lib itu, saya memberinya hadiah.
Hugo Roussaffa - GeoDatup

Juga menggunakan jalan OSM sebagai input sejauh yang saya bisa lihat, saya ingin solusi yang dapat bekerja pada semua jenis garis. Tetap saja, saya sangat menyukai sains di baliknya, akan senang menerapkan ini pada skenario lain juga.
Hasan Mustafa

Saya telah memperbarui posting saya untuk mencerminkan komentar Anda, saya menghargai umpan baliknya.
whyzar

4

ArcGIS adalah yang paling sederhana jika itu adalah opsi. Saya tahu OP menentukan OS tapi saya menyebutkan ini sebagai opsi OS tidak terlihat sangat membantu dibandingkan dengan: http://resources.arcgis.com/en/help/main/10.1/index.html#/Merge_Divided_Roads/007000000000000000000 /

Jawaban untuk pertanyaan ini memberikan beberapa opsi Sumber Terbuka: Bagaimana saya bisa menggabungkan / menutup jalur jalan terdekat dan paralel (mis. Jalur ganda) menjadi satu jalur tunggal?

Jika Anda memberi kode, Anda dapat menghitung posisi koordinat rata-rata berdasarkan verteks, jika tidak maka:

  1. buffer jalan dengan opsi "menggabungkan semua" pada output.
  2. Dapatkan garis tengah poligon
  3. Pisahkan garis di persimpangan dengan JUMP Split Lines di Intersection of Other Lines
  4. Tata ruang Gabungkan kembali atribut-atributnya

Sepertinya tidak ada OS yang baik setara dengan alat ArcGIS 'Polygon to Center line'. Saya mungkin menyarankan:

Sebuah. Buat diagram voronoi dan ambil kerangkanya.
b. Buat raster jarak Euclidean dan ekstrak nilai pusat dan konversikan ke sebuah garis

... mungkin beberapa yang lain juga.

Akhirnya, tergantung pada skala dan aplikasi .. mungkin juga layak hanya menghapus salah satu dari dua baris - akankah ketidaktepatan masalah?


Opsi ArcGIS terlihat bagus, saya akan mencobanya, tetapi saya lebih suka solusi OS. Menghitung posisi koordinat rata-rata berdasarkan verteks, adalah strategi mundur saya. Saya akan mencoba semua metode yang telah Anda daftarkan dan lihat apakah mereka bekerja untuk saya, terima kasih!
Hasan Mustafa

Alat ArcGIS, 'Merge Divided Roads (Cartography)', adalah persis apa yang saya cari, tetapi semua pemrosesan yang saya lakukan adalah di Linux, menggunakan Postgres dan QGIS, untuk menggunakan alat yang saya perlukan untuk beralih ke windows .
Hasan Mustafa
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.