Làm cách nào để chuyển đổi dữ liệu OSM sang PostgreSQL cho mục đích định tuyến?


10

Tôi đang tạo một ứng dụng định tuyến bằng OpenStreetMap. Hiện tại, nhiệm vụ của tôi là chuyển đổi dữ liệu từ tệp OSM sang PostgreSQL.

Tôi đã đọc về osm2pgsql, nhưng vấn đề là nó nói rằng osm2pgsql không phù hợp để định tuyến. Tôi cũng đọc về Thẩm thấu, nhưng có một cái gì đó về cổng rails, mà tôi nghĩ có nghĩa là tôi cần học Ruby in Rails. Tôi đã thử học RoR trong quá khứ và tôi thấy nó quá khó để học.

Tôi đang sử dụng PHP cho ứng dụng của mình. Làm cách nào tôi có thể trích xuất dữ liệu từ tệp OSM và xuất nó sang PostgreSQL của tôi. Tôi biết tôi có thể đang thiếu một cái gì đó ở đây, nhưng tôi là người mới khi nói đến ứng dụng bản đồ. Tôi hy vọng ai đó có thể giúp tôi. Cảm ơn! : D

Câu trả lời:


11

Định tuyến trong Postgres / PostGIS được xử lý bởi thư viện pgRouting từ http://pgrouting.org

Có vẻ như một tập lệnh đã được viết để xử lý osm thẳng vào pgRouting tại http://www.pgrouting.org/docs/tools/osm2pgrouting.html

Bạn sẽ cần cài đặt pgRouting trong Postgres trước khi chạy tập lệnh osm2pgrouting.



cảm ơn, đã chỉnh sửa câu trả lời ban đầu của tôi để phản ánh bản cập nhật này. Tôi không thể tìm thấy ví dụ hoạt động đầy đủ, vì vậy tôi đã xóa liên kết này.
Kelso

3

Cũng chú ý đến osm2po ( http://osm2po.de ) - nó có thể tạo các tập lệnh sql tương thích với pgRouting và trong một số trường hợp, nó dễ sử dụng hơn osm2pgrouting (ví dụ trên nền tảng MS Windows vì osm2po được viết bằng Java).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.