Tuesday, June 24, 2014

Tạo Routing cho PostgreSQL sử dụng OSM2PO

Quách Đồng Thắng 
Trung tâm Ứng dụng GIS Tp.HCM

Tiếp theo bài Sử dụng PgRouting phân tích mạng trong ứng dụng GIS, bài viết này trình bày cách sử dụng dữ liệu OpenStreetMap để tạo mạng routing trong CSDL PostGIS với công cụ OSM2PO.

Các phần mềm cần cài đặt trước: PostgreSQL/PostGIS, QGIS
Download và giải nén OSM2PO.
Cấu hình lại file demo.bat để download dữ liệu OSM ở khu vực tùy chọn. Trong ví dụ này là dữ liệu OSM Việt Nam trên geofabirk server.
java -Xmx512m -jar osm2po-core-4.8.8-signed.jar prefix=vn tileSize=x http://download.geofabrik.de/asia/vietnam-latest.osm.pbf
Nếu muốn dữ liệu OSM ở khu vực nhỏ hơn (ví dụ Tp.HCM), có thể dùng công cụ Download OpenStreetMap Data trong QGIS (vào Vector/OpenStreetMap/Download Data)

Lúc này, file demo.bat được chỉnh sửa lại đường dẫn trỏ đến file osm vừa download
java -Xmx512m -jar osm2po-core-4.8.8-signed.jar prefix=hcm tileSize=x đường dẫn đến file.osm
Tiếp theo, tạo database với template postgis trong PostgreSQL, đặt tên là routing. Sau đó chạy file demo.bat. Kết quả:

Tiếp theo, sử dụng psql hoặc vào PgAdmin thực thi câu lệnh hcm_2po_4pgr.sql để tạo table cho database routing.

Đến đây, nhà phát triển ứng dụng có thể sử dụng các hàm routing (đã được tích hợp sẵn trong template postgis) để phát triển các ứng dụng tìm đường (tham khảo bài viết Sử dụng PgRouting phân tích mạng trong ứng dụng GIS). Tuy nhiên, người dùng có thể sử dụng chức năng PgRouting trong QGIS để kiểm tra nhanh kết quả:
Trong QGIS, vào Plugins/ Manages and install Plugins, tìm và cài đặt PgRouting.
Kết nối đến database routing và sử dụng công cụ pgRouting để thử nghiệm chức năng tìm đường

Ngoài ra, công cụ OSM2PO cũng tạo ra một giao diện chạy service routing  tại http://localhost:8888/Osm2poService (lưu ý vẫn để file demo.bat chạy để duy trì service)


Nhận xét: so với công cụ OSM2PgRouting, công cụ OSM2PO đơn giản hơn nhiều do chỉ tạo duy nhất một table phục vụ routing. Người dùng quan tâm có thể tìm hiểu sâu hơn các tham số cấu hình của OSM2PO, cũng như chỉnh sửa các tham số mạng của table routing và thực hiện các chức năng tương tác phía client để có được ứng dụng mong muốn.

No comments:

Post a Comment