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.

Thursday, June 12, 2014

Tạo liên kết đối tượng không gian đến trang Wikipedia sử dụng action trong QGIS

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

QGIS hỗ trợ tính năng rất hay, cho phép người dùng tự tạo "action" cho đối tượng không gian khi có thao tác click, như mở một hình ảnh, một đoạn video hay truy cập đến một ứng dụng bất kỳ. Bài viết trình bày cách tạo một action trong QGIS thông qua ví dụ kết nối các quốc gia đến trang Wikipedia, giúp người dùng có thể truy cập nhanh đến các khái niệm được định nghĩa trong Wikipedia cho một đối tượng trên bản đồ.

Đầu tiên, download bản đồ thế giới world_borders và mở trong QGIS. Trong bảng thuộc tính của world_borders có trường "NAME" là tên quốc gia. Chúng ta sẽ kết nối thuộc tính NAME với trang Wikipedia tương ứng bằng cách định nghĩa một action bằng Python:

Vào properties --> Actions. Mục Type chọn Python, đặt tên trong trường Name (ví dụ Wikipedia), mục Action thêm vào đoạn script Python sau:

from PyQt4.QtCore import QUrl; from PyQt4.QtWebKit import QWebView; myWV = QWebView(None);
myWV.load(QUrl('http://vi.wikipedia.org/wiki/[% "NAME" %]')); myWV.show()

Lưu ý mun hin th trang Wikipedia tiếng Vit thì thay http://wikipedia.org thành http://vi.wikipedia.org 


(Mun tham kho các Action sn có, chn Add default actions)


Tiếp theo chn công c action đ click vào đi tượng không gian và xem trang Wikipedia tương ng.

Nhân dp khai mc Worldcup 2014, chúng ta cùng tìm hiu đt nước Brazil:


Nếu mun "google" thuc tính ca đi tượng không gian, c th là tên quc gia trong world_borders, ta đnh nghĩa action như sau: type là Open, Name là "Google", Mc Action nhp vào
http://www.google.com/search?q=[% "NAME" %]




Tiếp theo, nếu mun to thêm mt action đ m mt hình nh tiêu biu cho tng quc gia thì có th to thêm trường "image" vi kiu string lưu tr đường dn đến file nh trên máy. Đ thun tin khi cp nht, mc Fields/Line edit chn là Filename (QGIS s m dialog đ người dùng chn file nh thay vì phi nhp th công)


Sau đó t
o mt action mi vi type là Open, Name là "Hình nh", Mc Action chn Insert field "image".  Action s gi trình xem nh mc đnh ca Windows đ hin th hình nh:



Kết qu: