Saya memiliki satu set skrip postgis yang menghasilkan dua tabel - satu dari set poin dan yang kedua set jalan yang mengelilinginya. Semua data dalam proyeksi yang sama dan kedua output disimpan dalam tabel postgres 9.2 dengan postgis 2.1
Topologi pgrouting dari jaringan jalan telah dibuat dan tabel poin memiliki kolom yang berisi segmen jalan terdekat.
Saya ingin menghasilkan subset dari jaringan jalan yang mewakili jaringan terkecil yang menghubungkan semua titik menggunakan sesuatu seperti pohon spanning minimum. Jaringan jalan tidak diarahkan, dan biaya hanyalah panjang rute.
Saya bisa melakukan ini di QGIS / Grass menggunakan keluarga modul v.net tetapi idealnya saya ingin menjaga langkah terakhir ini dalam SQL juga.
Saya telah melihat fungsi postgis apspWarshall baru tapi saya bingung bagaimana hal itu dapat didorong untuk memfokuskan energinya pada menghubungkan titik-titik dan bukan seluruh jaringan.
Ini adalah skrip pendek yang saya kumpulkan dalam upaya untuk membuat kerangka kerja untuk menyelesaikan ini, tetapi saya tidak bisa melihat di mana dimungkinkan untuk memfokuskan fungsi untuk memulai dengan subset dari tepi.
SELECT seq, id1 AS node, id2 AS edge, cost, the_geom
FROM pgr_apspWarshall('SELECT gid AS id,
source,
target,
st_length(the_geom) AS cost
FROM road_network
',
false, false
) AS tree
JOIN road_network As roads
ON tree.id2 = roads.gid
Dalam jalur tunggal masalah jalur terpendek fungsi meminta awal dan akhir tetapi tampaknya tidak di semua titik masalah. Sama di Grass, v.net.spanningtree dan v.net.steiner mengharapkan satu set poin dan garis sebagai jaringan gabungan untuk bekerja dengannya.
Adakah yang punya saran untuk melakukan ini di PostGIS?