2011-07-01 15 views
8

Im sử dụng công cụ osm2pgsql để nhập tệp osm vào cơ sở dữ liệu postgres bằng phppgadmin làm công cụ quản trị. tôi chỉ tải xuống một thị trấn nhỏ từ osm ở định dạng xml và im gặp sự cố khi nhập nó bằng thiết bị đầu cuối trên mac. Im một chút của một noob lúc này vì vậy bất kỳ trợ giúp sẽ được đánh giá rất nhiều. Ive đã xem xét một số bài viết nhưng không có bài viết nào cung cấp sự rõ ràng tôi cần để đáp ứng nhu cầu của tôi.nhập tệp osm vào cơ sở dữ liệu postgres/postgis

Cảm ơn

im nhận được lỗi này có thể là một cái gì đó nhỏ không chắc chắn ..

Using projection SRS 900913 (Spherical Mercator) 
Setting up table: planet_osm_point 
NOTICE: table "planet_osm_point" does not exist, skipping 
NOTICE: table "planet_osm_point_tmp" does not exist, skipping 
SELECT AddGeometryColumn('planet_osm_point', 'way', 900913, 'POINT', 2); 
failed: ERROR: function addgeometrycolumn(unknown, unknown, integer, unknown,  integer) does not exist 
LINE 1: SELECT AddGeometryColumn('planet_osm_point', 'way', 900913, ... 
     ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts. 

Trả lời

7

Bạn cần phải cài đặt các phần mở rộng PostGIS vào cơ sở dữ liệu Postgres của bạn. Giả sử rằng bạn đã cài đặt PostGIS trên máy tính của bạn, bạn cần phải làm điều gì đó như:

psql <database> < /usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql 

Đường dẫn chính xác để postgis.sql sẽ phụ thuộc vào sự phân bố bạn đang sử dụng và làm thế nào nó đã được đóng gói PostGIS. Bạn cũng có thể muốn/cần phải cài đặt các không gian bảng hệ thống tài liệu tham khảo với một lệnh như thế này:

psql <database> < /usr/share/postgresql/8.4/contrib/postgis-1.5/spatial_ref_sys.sql 
+0

tôi đã thực hiện các tệp sql đó và giờ đây tôi có tất cả các chức năng được yêu cầu. cảm ơn cho btw đó. im vẫn không chắc chắn làm thế nào để làm việc nhập khẩu với osm2pgsql. Cảm ơn – John

+0

Khi tôi cố gắng thực hiện 'postgis.sql' tôi nhận được lỗi" Loại "spheroid" đã tồn tại'. Làm thế nào tôi có thể sửa chữa nó? –

+1

Trong postgresql 9 và postgis 2 phiên bản này được thực hiện bởi: CREATE EXTENSION postgis; TẠO THỜI GIAN postgis_topology; [thêm thông tin] (https://docs.djangoproject.com/en/dev/ref/contrib/gis/install/postgis/) –

0

Đây là một lệnh ví dụ:

osm2pgsql -c -d your_country -U postgres -W -H localhost -P 5432 -s -k -x -p OSM -S default.style .. \ your_country.osm.bz2

Dưới đây là một số weblinks hữu ích: http://wiki.openstreetmap.org/wiki/Osm2pgsql http://www.gis.hsr.ch/ wiki/Osm2pgsql

-S.