
PosGIS Routing
Pernah lihat ato nyoba aplikasi yahoo maps?
Saat kita mencari arah atau jalur terpendek dari satu lokasi ke lokasi lainnya, marker jalan muncul sebagai penunjuk arah jalur terpendek yang harus kita tempuh. Aplikasi ini menggunakan metoda Vertex Simplication dengan menghitung jarak terpendek. Sampai saat ini, untuk menangani datanya dari database postgresql yang kita simpan dipakai diprogram pgDIJKSTRA/pgRouting dari PostLBS. Ini sebenarnya hasil oprekan yang sudah cukup lama dan dilakukan di atas Windows menggunakan fungsi pgDijkstra, PostgreSQL 8.1.0 dan tidak berjalan pada PostgreSQL 8.0. Awalnya sih dari melihat dari dokumen yang dibawa oleh Pak Hadi, aku jadi tertarik kenapa ada error di function PostgreSQL-nya.
Kita coba menggunakan database roads dengan database username routing.
Baiklah, catatan yang pertama dimulai dari:
Pertama, pastikan pada database telah terinstall postgis. Bisa dengan installer yang disediakan pada windows atau sistem operasi lainnya.Untuk melihat apakah sudah terinstall, pada database ada table geometry_columns (registrasi data geometry tiap table) dan spatial_ref_sys sebagai projection table-nya.
*update : Bila menggunakan installer windows v8.2.x sudah terinstall otomatis dan sudah terdapat template postgis. Kita hanya membuat database berdasarkan template ini.
Bila belum terinstall ataupun terbuat templatenya, silahkan lihat postingan sebelumnya. Hanya saja secara default, kepimilikan fungsi dan kedua tabel oleh database postgres. Untuk merubahnya kita lakukan perintah:
C:PgSQL> psql -U postgres -d roads
psql> ALTER TABLE geometry_columns OWNER TO routing;
psql> ALTER TABLE spatial_ref_sys OWNER TO routing;
Kedua, masukkan data jalan anda. Misalkan jalanbandung.sql
C:PgSQL > psql -U routing -d roads -f jalanbandung.sql
Catatan: Pada beberapa type mapserver, dibutuhkan OID table yang mengandung data geometri sedangkan default postgresql 8.1 yang dicoba default-nya without oids. Ubah table Anda memakai OIDS dengan mengedit file SQL Anda pada bagian CREATE TABLE namatable ( ….) WITH OIDS;
Ketiga, masukkan fungsi dijkstra:
C:PgSQL> psql -U postgres -d roads -f dijkstra.sql
C:PgSQL> psql -U postgres -d roads -f dijkstra_postgis.sql
Catatan: Pada dijkstra.sql aku berhasil menemukan bug kecil terhadap fungsi create_graph_tables nantinya.
Oleh karena itu perlu diedit sedikit pada bagian :
"CREATE OR REPLACE FUNCTION create_graph_tables"
// temukan di bagian bawahnya yang bertuliskan:
EXECUTE 'CREATE TABLE ' || edges_table
|| ' (id serial, source int, target int, '
|| 'cost float8, reverse_cost float8,
UNIQUE (source, target))';
// ubah menjadi
EXECUTE 'CREATE TABLE ' || edges_table
|| ' (id serial, source int, target int, '
|| 'cost float8, reverse_cost float8) WITH OIDS';
Catatan: Belum dicoba pada fungsi yang terbaru
Keempat, buat satu table baru sebagai tempat hasil routing kita. Misalkan saja dengan nama table route. Caranya dengan membuat satu file sql baru route.sql dengan tabel isian berasal dari jalanbandung. File route.sql berisi:
CREATE TABLE route (gid int UNIQUE, source_id int, target_id int, edge_id int) WITH OIDS;
SELECT AddGeometryColumn('route', 'the_geom', -1, 'MULTILINESTRING', 2 );
INSERT INTO route (gid, the_geom) (SELECT gid, the_geom FROM jalanbandung);
atau bisa dilakukan tanpa membuat file route.sql dengan mengetikkan di konsol pgsql dengan mengetikkan terlebih dulu:
C:PgSQL> psql -U routing roads
dan untuk mengeksekusi route.sql kita berikan perintah:
C:PgSQL> psql -U postgres -d roads -f route.sql
Catatan: Tabel ini bertujuan untuk menempatkan data gid dan data geometri dari tabel kita yang sebenarnya identik tanpa mengikutkan informasi dari kolom lain.Kita tidak bereksperimen dengan tabel data melainkan pada tabel route ini. Bisa Anda lihat isi tabel ini terdiri dari kolom: || gid || source_id || target_id || the_geom || dengan source_id, target_id dan edge_id masih kosong. Di sinilah peran fungsi dijkstra yang kita install tadi akan bermain.
Kelima, kolom source_id dan target_id pada tabel route dengan mengetikkan perintah sql:
C:PgSQL> psql -U routing roads
psql> SELECT assign_vertex_id('route', 1);
Script ini akan berjalan tergantung ketelitian verteks yang Anda inginkan (di atas menggunakan 0.000001 satuan) dan besarnya banyaknya data Anda. Semakin teliti (misalnya 0.01 satuan) maka script akan berlangsung semakin lama. Hasilnya akan disimpan pada kolom source_id dan target_id tabel route dengan membuat id dan data geometri pada tabel baru vertices_tmp.
Catatan: Berdasarkan hasil percobaan, prosedur ini hanya bisa dijalankan sekali.Apabila Anda merasa gagal melakukannya (source_id,target_id pada tabel route masih kosong begitu juga tabel vertices_tmp) Anda harus menghapus database Anda dan mengulangi dari awal.Ini disebabkan karena saat melakukan assignment antara tabel route dan vertices_tmp, fungsi mencatat oid tabel vertices_tmp yang pertama kali dibuat. Sedangkan apabila prosedur ini diulangi, oid tabel vertices_tmp tentu saja sudah berubah. Namun bila ada saran dan masukan yang lebih berguna, aku sih sangat berterima kasih
Keenam, kolom edge_id pada tabel route masih kosong. Isikan dengan mengetikkan perintah sql:
C:PgSQL> psql -U routing roads
psql> SELECT create_graph_tables('route', 'int4');
// Script ini selain mengisi kolom edge_id,
// juga akan membuat 2 tabel baru: route_edges dan route_vertices.
// Sekarang lihat isi dari tabel route_edges. psql> SELECT * FROM route_edges LIMIT 3;
akan menghasilkan kira-kira seperti ini:
id | source | target | cost | reverse_cost
---+-------+-------+------+--------------
1 | 1 | 2 | |
2 | 3 | 3 | |
4 | 2 | 2 | |
(3 rows)
Untuk mengisi kolom cost sebagai hasil perhitungan besar jarak per path, gunakan perintah sql:
SELECT update_cost_from_distance('route');
SELECT * FROM route_edges LIMIT 3;
akan menghasilkan:
id | source | target | cost | reverse_cost
---+-------+-------+-------------------+--------------
1 | 1 | 2 | 6857.46585793103 |
2 | 3 | 3 | 37349.9592156392 |
4 | 2 | 2 | 14040.5673116933 |
(3 rows)
Bersambung biar gak kepanjangan…
Related posts:
1. Comment by ichien
26/Jan/2008 at 04:57
salam
mas bisa minta tolong, q pengen nanya, oi ya sebelumnya makasih ya mas karena berkat tulisan mas akud dapt ide tntng cara mencari rute terpendek, dulunya saya sempat berpikir gimana cranya bikin algoritma untuk hal itu berbasis sig, mas kemaren q make cara2 yang mas kasihkan disini, tapi setelh saya coba koq malah eror di dalam column edge_id, pesan erornya sich column refernce edge_id is amboguous. jadi d bisa make fungsi shortest_path_as_geometry, mas kalo punya ide saya dikasih tahu ya mas, soalnya ini buat tugas yang sangt penting,
terimakasih sebelum dan sesdahnya
salam,
kirm ke email sya gapapa
2. Comment by Eric Lontong
26/Jan/2008 at 13:09
tugas apa proyek? :p
hihihi…
gimana kalau situ aja yang email ke aku duluan di halaman kontak tuh
3. Comment by Arno
4/Nov/2008 at 23:41
Mas eric… nyari source dijkstra.sql dmn yah? sy udah install postgresql 8.2 tp g ada dijkstra.sql nyah.
tlg di bantu dong.
4. Comment by Eric Lontong
5/Nov/2008 at 18:43
Mas Arno, salam kenal.
Source aslinya ada di http://www.postlbs.org/.
Yang diposting di sini versi yg sudah cukup lama lho. Untuk versi baru, dijkstra atau A*, nanti dipost lagi deh.
Kalau yang di sini itu pakai yang versi cartoweb, kalau tidak salah.
5. Comment by Arno
12/Nov/2008 at 03:03
mas eric, sy liat yg bagian 2. di situ kan di kasih contoh jalan bandung. nah itu jalan bandung terdiri dari beberapa file ato cman satu file ajah? soalny sy pake file jalan bandung yang dipisah jadi 3 bagian. Gmn?
6. Comment by Eric Lontong
14/Nov/2008 at 22:16
Itu jadi satu bagian dan dianggap satu kelas.
Kalau misalnya saja, ini misalnya lho, Anda ingin seperti Google Maps routing, ada Highway, Walk Street ataupun kelas lainnya dengan klasifikasi: Bisa dilewati kendaraan besar, kendaraan kecil, kendaraan roda dua, atau pejalan kaki, maka Anda perlu mendigitasi masing2 kelas dengan overlay system yang baik. Misalnya pejalan kaki diperbolehkan melalui dari jalan tikus hingga highway, ya jalan yang didijitasi jalan kecil harus termasuk juga highwaynya dengan overlay highway di atas. Jadi highway sebagai jalan tikus gak keliatan karena berada di 'belakang' highway.
Gitu…
Aduh, susah juga ya jelasinnya dengan tulisan gini hehe…
Ingatin aja deh aku harus posting tulisan baru kalau mau dibikin logic-nya dalam bentuk visualisasi
7. Comment by Arno
16/Nov/2008 at 13:08
Iya mas eric, susah juga klo cman ngebaca gitu doang. Buat postingan baru lg aja, hehehehe. Mas eric ada d bdg ga? klo ada mending ajarin langsung aja, mau ga? hehehehe
8. Comment by Eric Lontong
7/Dec/2008 at 02:47
boleh aja.
isi aja form about trus kirim deh dengan alamat email asli.
ntar aku balasnya lewat email ke alamat email situ deh
9. Comment by Arno
3/Jan/2009 at 01:27
Ok, mas eric…
email address nya sama dengan email yg sy masukin di dalam form itu. Bs kebaca kan?
ini email sy. azepajep@yahoo.com
nuhun
10. Comment by Nuri
16/May/2009 at 01:08
eh Mas Eric,,
boleh nanya gak??
Gimana sih cara ngoneksiin postgresql dengan mapinfo??
Makasih jawabannya ya,,
saya masih nuwbie banget nie masalah webgis.
11. Comment by Laurensius
26/Aug/2009 at 05:43
Salam kenal mas..
Saya lauren. Saya masih bingung untuk mengupdate data spasial dlm GIS. Yang ingin saya update berupa POINT..
Database yg digunakan PostgreSql
Mohon bantuannya ya mas krn saya masih pemula
Makasih
12. Comment by Eric Lontong
6/Sep/2009 at 21:23
@Nuri ada odbc postgresql (pgodbc) dan mapinfo dikasih tools buat koneksi melalui pgodbc ini lho
@Laurensius postgresql mengubah data teks (WKT) menjadi binary format geometry (geom). Nah ini ada fasilitas untuk membaca sebaliknya. Silakan baca2 lagi manual postgresql WKT format. nanti hasil query akan menghasilkan, misalnya, POINT(107.111111 -6.222222)
Selamat mencoba
13. Comment by Laurensius
11/Sep/2009 at 08:46
Saya menggunakan chameleon dan secara otomatis jika kursor diletakkan pada point di peta akan didapat koordinat X,Y.
Nah, yg menjadi masalah saya adalah bagaimana cara penulisan (membahasakan) query update dan insert untuk point tersebut dalam bentuk PHP karena dy memiliki dua variabel (posisi X,Y).
Kira-kira mas Erick ada refrensi ga mengenai hal ini?
makasih..
14. Comment by Eric Lontong
25/Sep/2009 at 17:39
waduh, udah lama ga pake chameleon
klo bisa sharing lebih jelas lagi, maksudnya gimana sih ren (boleh panggilnya ren aja ya hehe)
15. Comment by irlan
7/Oct/2009 at 04:48
sy jg kesulitan mengupdate data2 point yang sudah di ubah dalam bentuk database…
gmana cara menggunakan postgresql WKT format itu mas….
(yang ada di bayangan saya, ketika saya mengklik suatu koordinat di web, maka akan menambahkan nilai koordinat di kolom geom geometri-nya,gmana yah caranya?)
16. Comment by andre
14/Nov/2009 at 01:34
mas mau tnya crnya nampilkan peta shp d mapserver bgmn?
17. Comment by Eric Lontong
16/Nov/2009 at 00:20
ya seperti biasa sesuai dengan tutorial di mapserver. cobain deh jalan-jalan kesana trus ntar klo ada masalah posting di sini beserta pesan error yang muncul ya.
thanks udah mampir, bookmark dong
18. Comment by bintang
29/Mar/2010 at 02:38
mas ada file contohnya g?klo ada sy dikasi dunk untuk pemahaman TA sy,trimakasih ya
19. Comment by Eric Lontong
9/Apr/2010 at 02:38
waduh, itu udah lama banget dan file contohnya udah ga simpan lagi nih…
20. Comment by bintang
30/Apr/2010 at 00:25
ok mas,trimakasih udah bersedia reply
…klo file djikstra.sql dan djikstra_postgis.sql cr nya di mn?klo punya linknya dunk…heheheheheh cr di google g ktm je,hahahaha
21. Comment by bintang
3/May/2010 at 01:54
mas skalian tanya lg,klo mau nampilke vertices_tmp (|id serial||the_geom geometry|) dan dijkstra_result (|oid||gid integer||the_geom geometry|) di mozilla mapfile nya skema koneksinya gmn?sy sudah coba menampilkan tabel yg serupa dengan jlnbandung,bisa tp klo ke dua tabel itu agak kesulitan. SEKALI LG BANYAK TRIMAKASIH
22. Comment by Eric Lontong
11/May/2010 at 09:52
bintang, maksudnya koneksi ke 2 table gimana?
ada key pengikatnya ga?
klo ada coba aja pake sintaks JOIN seperti SQL biasanya.
file dijkstra dan djikstra_postgis.sql itu dulunya disediakan sama cartomap klo tidak salah.
iya memang sudah lama sekali dan orang2 sekarang menggunakan A* (A-star) method untuk routing. coba maen2 ke web nya postlbs
23. Comment by bintang
14/May/2010 at 05:27
mas klo konsultasi tentang routing ini bs g??ya mungkin lwt tlpn pa chat gt?ya klo bs dan ad biayanya saya mau,harap maklum yaa,hehehehe
24. Comment by Eric Lontong
22/May/2010 at 11:54
coba kirim kontak ke email lewat halaman About aja. Klo setelah 3 hari ga dibalas, berarti hosting-an ini error, kirim pesan lagi aja.
ntar lewat YM aja ya.
25. Comment by furi
25/Jun/2010 at 01:12
mas aris..
saya bingung benar cara menggunakan GIS ini..
awalnya begini, saya ingin mengimport file dari ArcMap ke database postgreSQL, awalnya menggunakan shp2pgsql, tapi itu hanya menambah ke databasenya..
sedangkan saya ingin langsung muncul map..
dan itu harus di taruh di database default, dan tidak bisa menggunakan database baru
akhirnya keluarlah alternatif untuk menggunakan quantum GIS..
ternyata masih error di SPLIT, untuk import ke quantum GIS..
bisa bantu hal ini mas?
terus pertanyaan kedua adalah, bagaimana saya bisa mengkoneksikan dari postgreSQL ke map server?
pake php mapscript bukan ?
terus, mau tanya lagi dijkstra.shp itu bagaimana carinya susah sekali, untuk surabaya pula,,mas bisa bantu kah?
atau modul dijkstranya harus saya ketik ulang atau tulis commandnya?
makasih sebelumnya..
26. Comment by Eric Lontong
25/Jun/2010 at 03:33
kok aris sehhh?
wah, ga bisa maen langsung2 aja
27. Comment by furi
26/Jun/2010 at 01:54
maaf..
bingung ni sama komennya mas eric
tapi beneran..
lagi bingung sangat
28. Comment by Eric Lontong
26/Jun/2010 at 11:18
@furi
begini begini…
klo di ArcMap/ArcGIS, kan ada file shp,dbf,dll dan klo mau liatnya ya pake ArcMap/ArcGIS itu.
nah si postgresql itu, file2 shp,dbf,dll itu digantikan dengan database postgresql/postgis tadi.
untuk melihatnya sih perlu program tambahan tadi.
ya bisa MapInfo, ArcMap, dll utk desktop di-combine dgn pgodbc (driver koneksi ke pgsql)
sedangkan mapserver ato geoserver ya utk berbasis web.
shp,dbf,dll itu juga sebenarnya bisa utk web mapping dgn geoserver/mapserver.
Pertanyaannya, pengen langsungnya seperti apa?
Emang ArcMap termasuk program langsung seperti yg Anda maksud?
Bukannya program itu membutuhkan data juga utk tampil sebagai map?
29. Comment by ayu
2/Jul/2010 at 06:32
mas eric,,
saya sedang dalam proses tugas akhir untuk jalur terpendek ini..
saya bener2 bingung dlm penggunaan postGIS ini..
mas eric bisa jelasin lebih detail ke saya???
30. Comment by Eric Lontong
2/Jul/2010 at 10:07
ayu, mau dijelasin lebih detail seperti apa?
lokasi dimana & kuliah dimana?
klo ada di sekitar2 bandung, boleh klo mau dijelasin secara langsung.
tapi traktiran makan ato ngopi dimana yak hehe…
31. Comment by ayu
3/Jul/2010 at 05:54
saya di pekanbaru mas..
gini,,saya udah punya tabel jln arteri n jln kolektor di mysql n tabel yg ada di arcmap..
yg mau saya tanyakan: apakah tabel yg ada di arcmap itu dikoneksikan ke postgis?? lalu gmn tabel yg ada di mysql??
32. Comment by Eric Lontong
3/Jul/2010 at 06:47
wah, pernah ke pekanbaru, ga kuat panasnya hehe…
hehe…
bisa dikoneksikan sama seperti mysql itu juga. belum pernah nyobain tapi kyanya ga akan ada masalah dengan koneksi di mysql sekaligus karena beda port menggunakan odbc.
temen ada yg nyobain dulu, geodata spasial ke postgis dan atribut tekstual ke mysql, dan tidak ada masalah tuh. aku fokus-nya ke client-server mapping development sebenarnya, jadi tidak terlalu mendalam soal konektivitas dengan aplikasi yg harganya ga sebanding
33. Comment by furi
9/Jul/2010 at 05:43
gini mas eric..
aku bikin aplikasi yang berbasis j2me yang dapat menampilkan peta..
dan lebih jelasnya, itu adalah pencarian terdekat menggunakan dijkstra..
saya sudah membuat file shp dari arc view, dan database yang ada langsung saya import ke dalam postgre sql..
lah permasalahannya..
setelah database terbentuk, saya ingin membuat peta yang berasal dari file shp itu tadi.
namun lagi2 gagal.
itu kenapa?
apakah itu karena exten dari petanya?
kalau setiap kali membuat file map, kan akan dibuat suatu gambar yang berextensi .jpg / .png dan yang lain..
kalau file ini saya panggil dari hape(j2me), apakah support?
34. Comment by Eric Lontong
9/Jul/2010 at 18:31
aku lihat ada email dari mu.
mari kita lanjutkan via imel saja klo begitu
35. Comment by furi
12/Jul/2010 at 06:46
mas eric, aku pake postgre 8.1
aku mau cari file dijkstranya..
bisa jelasin gimana cara instal PgRouting Dijkstra di Windows?
bisa detil?
aku bingung sangat ni mas eric
36. Comment by Eric Lontong
12/Jul/2010 at 12:23
furi yang baik hati dan mudah2an sabarrrr, karena posting aku di atas kita lanjutkan di email saja tidak digubris dan masih posting di sini, berarti emailnya saya ignore aja ya
Dan sepertinya Anda buru2 sekali. Mau cepat kawin ya? hehe…
Kalau langkah2 di atas kurang detail?
Ijinkan saya bertanya dulu ya,
1) Bisa diutarakan tujuan akhirnya mau seperti apa? Misalnya hasil routing ingin ditampilkan di web atau hanya sekedar memunculkan geodatabase routing saja?
2) Sebelum install pgRouting, sudah diinstal PostGIS?
3) Kalau ingin menampilkan di web (dan sesuai email menggunakan mapserver), sudah bisa load data GIS dari postgresql dan ditampilkan di web? Kalau sudah boleh lihat file .map nya?
4) Dan yg terakhir, yg paling penting, apakah sudah pernah mencoba dan ada pesan error yg bisa ditampilkan di sini?
Itu saja dulu ya…
Sekali lagi mudah2an bersabar dan mau bekerjasama bertahap demi bertahap biar sama2 mengerti.
Thanks
37. Comment by furi
20/Jul/2010 at 22:20
mas erriiccc..
langkah yang 2 dan 3 udahh!!!
yang PostGIOS udah ada geomnya yang di postgre…
brarti udah keinstal kan PostGISNya?
kalo load data dari postgre udah tampil di map koq!!
sekarang, dijkstra,,
dijkstraa..
dan dijkstraaaaa..
itu stepnya kaya gimana?
kudu ambil file dijkstra,sql di cartoweb taa?
aku bingungggg..
nggak bisa bentuk data baseee..
gimana bikin database kita masuk ke dijkstra??
trs, nampilin ke web itu gmn?
makassiiihh!!
udah nggak sabarr, udah sering garuk2 nggak jelas, liat errornya
38. Comment by furi
20/Jul/2010 at 22:23
udah saya bales koq emailnya mas.
tapi nggak ada balesan lagii
bener2 gemes sama barang2nya sorthest path
39. Comment by Dplato
22/Jul/2010 at 21:15
Query result with 1 rows discarded.
ERROR: function shortest_path("unknown", "unknown", "unknown", boolean, boolean) does not exist
SQL state: 42883
Hint: No function matches the given name and argument types. You may need to add explicit type casts.
Context: PL/pgSQL function "dijkstra_sp" line 12 at for over execute statement
maksudnya apa bang?
40. Comment by Dplato
22/Jul/2010 at 21:18
kejadian ini terjadi karena, kemarin semua data mapserver dan Databasenya sudah saya backup..kemudian laptopku bejat dan aku install ulang. lah..setelah selesai install ulang semuanya tiba-tiba fungsi djikstraku tidak berjalan…
kenapa ya bang…?
gak jadi ujian nih..hiks..hiks..
41. Comment by Eric Lontong
23/Jul/2010 at 00:53
@furi
hehehe
di postlbs ada tutorial yang menunjukkan penggunaan metoda shortest path terbaru. beberapa hari ke depan aku juga ada kerjaan berhubungan dengan itu dan nanti dicoba didokumentasikan dengan baik deh. trus ditulis di blog ini juga step-by-step nya. itupun klo ada waktu dan mood ya
@Dplato
itu artinya tidak ada fungsi shortest_path. dgn kata lain, belum terinstall.
kalopun sudah, coba dipastiin versi tsb bekerja dgn versi pgsql & postgis yg baru.
**kyanya karena kurang amal tuh laptop jadi gitu. klo dikasi ke aku jadi soleh dah tuh laptop
**
42. Comment by furi
23/Jul/2010 at 01:39
boleh minta link untuk postlbs yang shortest path?
pasti jalankah?
aku udah coba yang pake dijkstra.sql sama yang dijkstra_postgis.sql
bentar mas yang buat aku rancu,,apa aku kudu buat username yang beda untuk buat data base baru?
kalo aku tetp pake postgres gmn?
trs aku pingin tau, tabel file sql yang ada, dalam hal ini jalanbandung.sql itu terdiri dari apa saja?
yang vertex_id, source_id semacam itu dibuat otomatis oleh modul dijkstra atau kita buat sendiri?
setau saya dibuatkan dijkstra bukan?
43. Comment by Eric Lontong
23/Jul/2010 at 08:41
http://www.postlbs.org/
di situ ada fungsi shortest path menggunakan metoda Dijkstra, A* (A-star), Shooting Star.
coba maen2 aja kesana, masuk ke bagian download dan ambil beberapa contoh source code untuk aplikasi yg udah ada.
semuanya menggunakan database postgresql dengan ekstensi postgis.
kasitau gmn progress-nya yak.
gutlak
44. Comment by furi
4/Aug/2010 at 15:30
udah bisaa maaaaaaaassss..
makasih banyak yaaa
aku berhasil bandingin yang A* sama dijkstra..
biar yang Di atas yang membalas semua ilmumu..
aminn
45. Comment by Eric Lontong
5/Aug/2010 at 09:52
Amiiiiin…. sama2
Wuih, mantaaaaap!
Tapi eh eh, ntar dulu. gmn hasilnya?
lebih oke mana antara A* dan dijkstra (performance & akurasi detail) menurut pendapat pribadi?
46. Comment by iban
18/Aug/2010 at 16:44
mas eric ..
saya mau eksplorasi pgRouting nih .. tpi saya masih bingung dengan instalasi pgRouting itu sendiri ..
mohon penjelasannya lagi mas ..
oia,, saya pake PostgreSQL 8.2
47. Comment by iban
18/Aug/2010 at 16:50
maaf ke posting 2 kali .. he
trus mas .. minta info, file apa aja yg kita butuhkan kalo kita mau mempraktikan pgRouting ini ?
karena yang saya lihat, untuk dapat mempraktikan pgRouting ini harus ada file yg memuat data dari satu titik ke titik lain .. yang ada source dan target . apa itu harus buat sendiri untuk mempraktikannya? atau ada contoh file nya?
mohon bantuannya y mas eric ..
48. Comment by taufik
18/Aug/2010 at 19:13
nanya dong…
1.apakah pgrouting hanya bahasa dalam bentuk sql.tidak punya installer kah?
2. bisa nggak di pg routing penetuan shortpath menggunakan direction?
misalnya sy punya data arah direction 0,1,-1. direction 0 artinya jalannya 2 arah,1 artinya satu arah,-1 artinya satu arah tapi berlawanan arah dengan source dan target.
sekian terimakasih atas bantuannya
49. Comment by iban
19/Aug/2010 at 13:16
mas ..
saya sudah coba satu tutorial .. foss4g_w12_manual.pdf
terus saya masuk ke tahap run shortest path dijkstra query ..
saya mengetikan script berikut :
CREATE OR REPLACE FUNCTION shortest_path(sql text, source_id integer,
target_id integer, directed boolean, has_reverse_cost boolean)
RETURNS SETOF path_result
SELECT * FROM shortest_path(‘
SELECT gid as id,
source::integer,
target::integer,
length::double precision as cost
FROM victoria’,
25793, 128002, false, false);
saya enter .. error seperti ini :
ERROR: syntax error at or near “SELECT”
LINE 4: SELECT * FROM shortest_path(‘
^
yang jd prtanyaan saya, apanya yg error? apa saya salah nulis script nya?
mohon bantuannya ..
terimakasih sebelumnya ..
50. Comment by anggi
19/Aug/2010 at 13:54
mas eric aku mau nanya..
aku termasuk pemula di webgis..hhe aku kan sekarang lg menginstall pgRouting,,tp masih banyak kendala nih dan masih bingung..terutama pas saat create routing database nya..
pas aku mau ngeload psql -U postgres -f routing.sql routing ,, masih eror..
erornya -> psql:routing.sql:34: ERROR: could not access file “$libdir/routing”: No such file or directory
knp ya mas??padahal databasenya udh ada user ama password udh sama tp errornya pasti gt..itu juga berlaku buat routing_core.sql..
bisa dibales ke email saya.. anggi.silvani@gmail.com makasih
51. Comment by Eric Lontong
19/Aug/2010 at 16:01
@iban
apa sudah dipraktekkan tulisan aku di atas?
ada error/kesulitan dimana?
@taufik
1. pgRouting itu metoda routing menggunakan database postgresql. jadi untuk "trigger" atau menjalankan command program routingvya melalui bahasa sql.
2. secara teori bisa walaupun pada prakteknya sulit. coba deh baca2 tulisan aku juga tentang 2-way routing http://www.lontongcorp.com/2007/04/29/pgdijkstra-…
post lagi gmn hasilnya ya
52. Comment by Eric Lontong
20/Aug/2010 at 06:03
@iban
itu sih bikin fungsi manual shortest_path-nya.
yg menjadi pertanyaan apa libarary sudah terinstall dgn baik?
apakah sintaks SQL sudah ditulis dgn benar?
saranku sih menggunakan library yg sudah ada misalnya pgdijkstra itu yg sudah menyediakan lwgeom dan postgis SQL-nya
@anggi
itu sih library-nya belum terinstall dgn baik. kalau mau berhubungan lewat email, kontak duluan aja ya lewat halaman about pakai alamat email itu. nanti gitu masuk ke email, kau balas deh. posisi ada dimana?
kalau di bandung mau diskusi langsung ketemu jg boleh kok. beberapa orang pernah nemuin aku langsung soalnya
itu pun klo di bandung ya
53. Comment by iban
20/Aug/2010 at 15:28
mas .. kyaknya bner. library ny blum btul instalnya ..
tp y mas .. kn saya udah instal library nya tu .. saya cari library yg udah ada dari http://www.cartoweb.org/downloads/pgdijkstra/ (saya download tiga2nya tp saya pake yg http://www.cartoweb.org/downloads/pgdijkstra/pgdijkstra-win32-1.0.3.tar.gz)
saya copy ke dir lib d postgre .. tp waktu saya mau masukkan fungsi dijkstra… error ..
error nya kyak gni ..
psql:c:/Downloads/pgdijkstra/dijkstra.sql:22: ERROR: relation “path_result” already exists
psql:c:/Downloads/pgdijkstra/dijkstra.sql:32: ERROR: incompatible library “C:/Program Files/PostgreSQL/8.2/lib/libdijkstra.dll”: missing magic block
HINT: Extension libraries are required to use the PG_MODULE_MAGIC macro.
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
saya udah cba cari solusinya d google. ktanya plug-in yg saya pake gag kompatibel dan dia menyarankan postgreSQL yg saya gunakan untuk d downgrade ke versi 8.1(saya pake postgreSQL 8.2). apa memang harus bgitu? atau ada solusi lain?
lalu mksud “path_result” already exists disitu apa?
mohon pnjelasannya ..
NB:kalau mau kontak mas eric lewat email, kirim k alamat mana ya? saya butuh tempat diskusi .. terimakasih sebelumnya ..
54. Comment by anggi
20/Aug/2010 at 18:10
maksudnya yang belum terinstall library apa ya mas??hhe
55. Comment by Eric Lontong
27/Aug/2010 at 16:42
@anggi @iban
sudah dijawab melalui email ya
56. Comment by rian
16/Sep/2010 at 21:05
mas.. saya udah berhasil jalanin nih postgis routing, buat yg jalan searahnya juga udh bisa di postgre.. pake A star !!
skrng sy bingung ngejalaninnya di mapservernya.. saya mesti mulai drmna.. bikin file.map nya sih udah.. nah bingungnya yg bagus web tools nya apa. sy kemaren" nyoba pke mapfish. cuma ribetnya minta ampun.. hhe.. skrng lg nyoba openlayer sm ka map.. !! menurut mas lebih mudah yg mana ya.. atau ada tools yg bgus selain kedua itu.. sy sih pgnnya yg tampilannya dinamis gitu..
mohon pencerahannya ya mas.. msh newbie saya masalh webgis ini..
mugkin mas punya tutoorialnya..
terima ksh…
57. Comment by Eric Lontong
20/Sep/2010 at 15:26
@rian
coba baca2 deh bagian akhir tulisan ku ini: http://www.lontongcorp.com/2007/03/31/postgis-sam…
klo soal tools tergantung terbiasanya dgn yg mana sih sebenarnya.
gutlak yak
58. Comment by melki
1/Jan/2012 at 17:12
mas eric, saya mau nanya
sya udah coba langkah diatas, tapi pas langkah ke 5 error mas.
pada langkah ketiga, apakah harus dijkstra.sql yg di tambahkan.?
terima kasih, sebelumnya
ditunggu ya mas jawabannya
soalnya buat tugas akhir..
59. Comment by lontongcorp
13/Feb/2012 at 00:35
iya, itu kan pakai metoda dijkstra dan langkah ke-5 menggunakan salah satu fungsi dijkstra yang ada di dalam file dijkstra.sql itu
60. Comment by Arbi
7/Mar/2012 at 07:50
Selamat pagi mas,
mas saya mau nanya…
saya mau nambahin fungsi "routing_core.sql"..ketika mengeksekusinya keluar pesan ini :
ERROR: could not access file "$libdir/librouting": No such file or directory
********** Error **********
ERROR: could not access file "$libdir/librouting": No such file or directory
SQL state: 58P01
untuk fungsi routing_core_wrappers.sql sudah bisa..
kira2 itu kenapa ya mas?
saya menggunakan postgreSQL 8.4 dan menggunakan pgRouting 1.02..
ditunggu ya mas..:)
ini buat tugas akhir..
61. Comment by Arbi
7/Mar/2012 at 08:15
Selamat Pagi mas, saya Arbi..
saya coba load functionnya, "routing_core.sql" , message yang keluar :
ERROR: could not access file "$libdir/librouting": No such file or directory
********** Error **********
ERROR: could not access file "$libdir/librouting": No such file or directory
SQL state: 58P01
untuk :
routing_core_warappers.sql sudah bisa…
kira2 kenapa ya ? gimana solusinya menurut mas..Terima kasih, mohon dibalas ya mas..:)..buat TA
62. Comment by lontongcorp
7/Mar/2012 at 16:36
Biasanya error di folder library nya tuh. Ga ada atau ga bisa akess librouting.
Coba cek dulu (udah lupa nama file tepatnya) tapi ada ga librouting.dll di folder lib nya postgresql?