Saya mencari sebuah algoritma untuk menyederhanakan isochrones yang dihasilkan menggunakan data OSM.
Ini umumnya dicirikan memiliki banyak "lubang" kecil sebagian besar karena hilangnya data OSM tetapi juga sering memiliki "pulau" kecil karena penggunaan transportasi seperti kereta bawah tanah. Saya telah mencoba sejumlah alat untuk ini, tetapi semuanya terlalu agresif dalam mengecilkan ruang - paling kritis, menghapus pulau. Keterjangkauan ke pulau-pulau angkutan umum ini sangat penting.
Jadi daripada berfokus pada alat, saya ingin mundur sedikit dan bertanya apakah ada algoritma tertentu yang cocok atau tidak cocok untuk tugas seperti itu? yaitu menjadi agresif dalam menghilangkan lubang tetapi konservatif tentang tidak memindahkan pulau.
Isochrones memulai kehidupan dalam format GeoJSON. Mereka akhirnya akan diimpor ke PostGIS.
Jawaban:
Mungkin resolusi dimulai dari awal?
Di mana Anda membuat isochrones?
Saya menggunakan pg_routing dan mengembalikan set tepi yang dapat dijangkau dalam waktu yang ditentukan alih-alih poligon sehingga saya dapat menggambar poligon dari data ini seperti yang saya inginkan - saya dapat menggunakan st_ConvexHull, st_ConcaveHull, st_BoncleHull, st_Buffer ...
Fungsi pertama adalah seperti menempatkan sesuatu di balon karet, yang kedua adalah seperti menyedot udara dari balon ini, dan fungsi ini bisa jadi Anda cari karena akan mengembalikan geometri yang mewakili geometri cekung yang melingkupi semua geometri dalam set. dan telah mendapat parameter yang mencegah lubang dalam geometri yang dikembalikan ...
Tetapi saya masih tidak yakin apakah itu cara yang baik - Anda akan mendapatkan satu geometri yang tidak akan benar, karena Anda tidak dapat melompat turun dari kereta saat sedang berjalan. Mungkin Anda harus menggunakan ST_ExteriorRing untuk mendapatkan lubang dan kemudian st_simplify untuk menyederhanakan geometri?
Silakan tambahkan komentar yang akan memandu saya ke jalan yang benar jika Anda pikir jawaban ini bisa berguna sehingga saya dapat mengeditnya kembali menjadi benar.
sumber