Membuat poligon waktu drive menggunakan alat Open Source?

55

Adakah yang menggunakan alat sumber terbuka dan / atau data untuk menghasilkan poligon waktu drive yang terpancar keluar dari lokasi tertentu? Misalnya, saya telah menggunakan produk ESRI seperti Analis Jaringan dan Analis Bisnis untuk menghasilkan batas poligon yang mewakili jarak maksimum yang dapat ditempuh seseorang di sepanjang jaringan jalan dari titik tertentu dalam periode waktu yang ditentukan pengguna (misalnya 5, 10, dan / atau 15 menit). Apakah ada alternatif open source atau berbasis web yang serupa?

Saya melihat posting ini, tetapi sebenarnya tidak memberikan opsi alternatif: Bisakah Anda membuat poligon wilayah wisata dengan Google Maps API?

Saya sangat ingin tahu apakah ada (atau dapat) menggunakan OpenStreetMap untuk melakukan analisis waktu berkendara?

Juga, apakah ada implementasi utilitas pgRouting yang dapat digunakan untuk menghasilkan poligon? http://pgrouting.postlbs.org/

RyanDalton
sumber
Tertarik melihat jawaban yang satu ini. Sejauh yang saya ketahui, ESRI memimpin atas produk server Open-Source, terutama karena mengekspos Geoprocessing dalam model yang mudah disajikan / dikonsumsi.
Simon
Adakah pembaruan untuk pertanyaan ini? Saya benar-benar tertarik untuk bermain-main dengan pembuat poli DT open source dalam skrip peta.
Furlong
Saya belum bisa memberikan jawaban karena saya harus menghentikan pekerjaan saya di proyek ini. Karena saya bukan orang "GRASS", saya mungkin tidak akan pergi ke rute itu, meskipun sepertinya itu adalah solusi yang sangat layak. Namun sekarang, saya condong ke arah mencoba menggunakan pgRouting, yang konon memiliki fungsi Alpha Shapes yang tertanam di dalamnya.
RyanDalton

Jawaban:

52

GRASS v.net.iso akan memberi Anda hasil seperti ini:

masukkan deskripsi gambar di sini

Anda mungkin tidak ingin menjalankan algoritma cembung cembung pada output ini. Bayangkan jalan biru: Lambung cembung di sekitarnya akan berisi banyak bagian yang tidak dapat dijangkau dalam waktu yang diwakili oleh "biru".

Alih-alih, Anda mungkin ingin melihat bentuk alfa (pertanyaan terkait: Apa Definisi, Algoritma, dan Solusi Praktis untuk Cekung Hull? )

sketsa bentuk alfa

Anda dapat membuat isochrones waktu drive menggunakan pgRouting dan QGIS ( seperti dijelaskan di sini ). Saya tidak menggunakan OSM dalam hal ini, tetapi tentu saja Anda dapat membangun jaringan perutean Anda berdasarkan OSM (lihat alat osm2pgrouting ).

masukkan deskripsi gambar di sini

( resolusi penuh )

Untuk solusi PostGIS murni, Anda dapat menggunakan fungsi bentuk alpha pgRouting . Berikut ini adalah perbandingan bentuk alpha seperti yang diterapkan dalam pgRouting dan pendekatan yang saya sajikan dalam pembaruan sebelumnya:

masukkan deskripsi gambar di sini

Area berwarna mewakili hasil fungsi bentuk alfa, garis hitam adalah hasil dari pendekatan interpolasi yang dijelaskan sebelumnya. Area tangkapan kurang detail menggunakan bentuk alpha pgRouting. Juga, tampaknya tidak ada cara untuk memvariasikan nilai alpha untuk membuat representasi yang lebih detail.

underdark
sumber
2
+1 di alfa-bentuk! Pelajari sesuatu yang baru setiap hari! Saya tahu cembung lambung bukanlah solusi yang tepat, tetapi tidak tahu tentang ini!
Darren Cope
1
Terima kasih banyak telah memposting deskripsi ini di blog Anda. Saya pasti berencana melihat ini segera dan melihat apakah saya dapat mereplikasi dengan data saya. Itu terlihat fantastis!
RyanDalton
10

GRASS 'v.net.iso dapat digunakan untuk membuat' jaringan 'waktu drive yang dapat Anda berikan menjadi perintah' convex hull 'untuk mendapatkan poligon. Mungkin tidak ideal, tetapi akan berhasil!

Darren Cope
sumber
1
Haha - pukul saja aku!
om_henners
+1 untuk v.net.iso, tetapi tidak yakin tentang bagian cembung cembung - lihat jawaban saya
underdark
9

Yah, berpotensi Anda bisa menggunakan v.net.iso dari GRASS GIS. Namun itu tidak membuat poligon (AFAIK), tetapi membagi garis dengan kelas biaya dari sumber.

Sedangkan untuk menghitung waktu drive dari OSM, Anda dapat mengimpor data ke GRASS dengan v.in.osm , dan menggunakan v.net.iso untuk menghitung zona biaya. Jika Anda menginginkan waktu perjalanan dan Anda tidak memiliki batas kecepatan jalan, Anda dapat menghitung batas kecepatan berdasarkan beberapa fungsi kelas jalan.

om_henners
sumber
7

Anda dapat menggunakan GraphHopper untuk tugas itu, yang juga mendukung mode berbeda seperti berjalan atau bersepeda dan menggunakan OpenStreetMap per default. Anda akan memerlukan beberapa kode Java yang mengeksplorasi jaringan jalan dari titik awal yang mirip dengan cara kerja algoritma Dijkstra tetapi kemudian Anda bisa mendapatkan sesuatu seperti yang berikut bahkan secara real time (<0,5s):

masukkan deskripsi gambar di sini

Kode akan mengumpulkan poin yang harus Anda konversi ke poligon dengan misalnya alat JTS . Kecepatan sangat tergantung pada langkah terakhir ini. Tanpa ini akan mungkin di bawah 0,5 bahkan untuk jarak jauh.

Cara lain adalah dengan OpenTripPlanner .

Karussell
sumber
6

osrm-isochrone adalah pustaka node.js kecil untuk menghasilkan drivetimes.

Morgan Herlocker
sumber
5

Anda mungkin ingin memeriksa API Route360 ° JavaScript yang terbuka , yang berfungsi baik dengan Leaflet maupun Google maps. Ini mengembalikan poligon waktu perjalanan untuk mode perjalanan berikut: berjalan, sepeda, mobil, transit.

Poligon waktu perjalanan - NYC

Ini gratis dan open source dan cakupannya cukup bagus. Anda dapat menemukan banyak tutorial berbeda tentang cara menggunakannya di situs web.

Yoya01
sumber
1
Sisi klien adalah open source, tetapi sisi server bukan IMO.
Karussell
2

Meskipun tidak secara langsung menjawab pertanyaan Anda, Anda harus melihat pada API Mapnificent .

Mapnificent menyediakan peta waktu perjalanan angkutan umum yang dinamis untuk banyak kota di AS dan beberapa di seluruh dunia. Anda dapat menggunakan Mapnificent API untuk menambah aplikasi Google Maps Anda dengan overlay waktu perjalanan angkutan umum.

Lihatlah London di sini . teks alternatif

Simon
sumber
mapnificent adalah open source?
Karussell
2

Saya juga menemukan ekstensi Jaringan gvSIG , tetapi dokumentasi konfigurasi yang saya temukan sejauh ini cukup buruk. Saya memiliki harapan tinggi untuk itu, saya hanya perlu mencari tahu detail untuk menghitung biaya.

Saya menggunakan data US Census TIGER untuk jaringan jalan dan benar-benar menghasilkan beberapa poligon, tetapi tidak bisa membuat unit biaya benar-benar masuk akal. Jika ada yang berhasil mengimplementasikan alat ini, saya akan senang mendengarnya.

Saya juga menemukan Quantum Navigator untuk QGIS, tetapi saya belum menemukan pembaruan terkini.

Ryan Dalton
sumber
2

Hasil dengan pendekatan lambung cekung sangat bagus dan saya telah mengambil banyak inspirasi dari gambar di atas. Tetapi saya perhatikan bahwa hasilnya dapat mencakup beberapa daerah yang tidak dapat diakses melalui jalan darat (seperti sungai, misalnya). Tidak diragukan lagi bahwa ini bukan masalah dalam hal mencari fitur yang relevan (centroid populasi, jumlah rumah) berdasarkan jarak atau waktu dari tempat asalnya. Tapi itu juga hanya berfungsi di kedua ujung setiap tautan. Sekali lagi, tidak ada masalah di sebagian besar kasus (karena ruas jalan terpanjang memiliki kontrol akses - Anda biasanya tidak dapat melepaskannya sampai Anda sampai ke persimpangan / persimpangan berikutnya).

Namun, untuk semua itu, saya telah mengerjakan pendekatan yang berbeda berdasarkan LINK yang dikembalikan oleh PgRouting / (atau algoritma "Dijkstra" mentah) yang dipesan berdasarkan waktu dari node asal. Ini relatif sederhana dan mengategorikan tautan berdasarkan rentang waktu dan juga membagi tautan yang melintasi batas waktu. Kemudian tautan dengan kategorisasi yang sama (misalnya 0-2 menit, 2-4 menit) buffered oleh 250 meter.

John Steedman
sumber
1

Di WhereCampPDX tahun ini, beberapa perwakilan OpenStreetMap menyatakan bahwa menggunakan data OSM untuk routing cukup umum di Eropa. Namun, ini lebih jarang di AS karena peta biasanya tidak cukup baik. Anda dapat memeriksa layanan perutean berbasis OSM di:

http://openrouteservice.org/

jvangeld
sumber
1
Dan, tidak ada perutean yang tidak sama dengan waktu berkendara, tetapi terkait.
jvangeld
1
Ini adalah jenis perutean tetapi "satu untuk semua" dibatasi oleh waktu atau jarak
Karussell
1
Layanan ini berfungsi baik untuk saya. Saya tidak mendapatkan kesempatan untuk menguji keakuratannya, namun hal ini memungkinkan saya untuk menemukan, misalnya, radius 1 jam di area tertentu. Sangat baik jika seseorang harus pindah ke area yang tidak diketahui untuk bekerja dll.
Roman
1
Openrouteservices.org memiliki opsi untuk mengekspor data kami ke geoJSON. Setelah itu kita dapat mengonversinya dan menampilkan peta isochrone kita yaitu di Google Earth, Google Maps, dll ... mkrgeo-blog.com/…
Mariusz Krukar
Luar biasa. Openrouteservice sepertinya berfungsi dengan baik di Amerika sekarang.
jvangeld