Chương 2 POSTGRESQL VÀ POSTGIS
2.2. PostGIS
2.2.5. Phương pháp load dữ liệu dạng shapefile vào CSDL
• Shapefile là gì?
Định dạng shapefile là định dạng dữ liệu không gian địa lý vectơ phổ biến cho các phần mềm GIS.
Đặc điểm của shapefile:
+ Một shapefile được tổ chức thành các tập tin riêng rẽ, tối thiểu cần có 3 tập tin với phần mở rộng là “.shp”, “.shx”, “.dbf”. và định dạng tập tin shapefile có phần mở rộng là “.shp”.
+ Tập tin có phần mở rộng dạng “.shp” chứa các thơng tin về đặc điểm, hình dạng hình học của đối tượng. Tập tin có phần mở rộng dạng “.shx” chứa các thông tin về thứ tự của các đối tượng. Và tập tin có phần mở rộng dạng “.dbf” chứa các thơng tin về bảng dữ liệu thuộc tính của đối tượng.
+ Shapefile là một định dạng lưu trữ vectơ số để lưu trữ vị trí hình học và thơng tin thuộc tính liên quan.
+ Một shapefile khi hiển thị trong phần mềm GIS được gọi là lớp dữ liệu. Mỗi lớp thể hiện cho một đặc tính hình học khơng gian của một lớp đối tượng cần biểu diễn gồm : POINT, LINE, POLYGON và các thuộc tính liên quan đến các đối tượng đó.
+ Shapefile là dạng đơn giản vì chúng lưu trữ các kiểu dữ liệu hình học ban đầu như: LINE, POINT, POLYGON. Các kiểu hình học ban đầu này được sử dụng giới hạn mà khơng có bất kỳ thuộc tính để xác định những gì chúng hiển thị. Vì vậy, một bảng trong bản ghi sẽ lưu tính chất / thuộc tính của mỗi hình dạng ban đầu trong shapefile. Các hình dạng (LINE, POINT, POLYGON) cùng với các thuộc tính dữ liệu có thể tạo ra rất nhiều hiển thị với dữ liệu địa lý.
+ Trong Window
Sử dụng công cụ psql và công cụ shp2pgsql để load file dữ liệu dạng shape (.shp). Giả sử ta cần chuyển đổi file bc_pubs.shp sang file dạng bc_pubs.sql.
B1 : Start -> chọn Accessories -> chọn Command Prompt B2 : Chọn đường dẫn đến thư mục chứa các file định dạng .shp
Trong ví dụ này, ta chọn đường dẫn : C:\Program Files\PostgreSQL\8.4\bin bằng lệnh :
cd \Program Files\PostgreSQL\8.4\bin
B3 : Sử dụng công cụ shp2pgsql :
C:\Program Files\PostgreSQL\8.4\bin\shp2pgsql -d –i -s 4326 bc_pubs.shp bc_pubs > bc_pubs.sql
B4 : Thực thi nội dung tập tin mới tạo được (bc_pubs.sql) bằng côgn cụ psql C:\Program Files\PostgreSQL\8.2\bin\psql.exe
–U postgres –f bc_pubs –d postgis
‘-U postgres’: tên người dùng là postgres
‘-f bc_pubs’ : tên file cần thực thi là bc_pubs.sql ‘-d postgis’: tên cơ sở dữ liệu postgis.
B5 : Refresh pgAdmin III, trong CSDL bạn đã chọn, sẽ xuất hiện bảng bc_pubs.
+ Trong Linux
huongnghiem@koinoi:~/data$ shp2pgsql –d –i –s 4326 bc_pubs.shp bc_pubs > bc_pubs.sql
Shapefile type: Arc
Postgis type: MULTIPOLYGON[2]
huongnghiem@koinoi:~/data$ psql –U huongnghiem –f bc_pubs.sql –d huongnghiem