Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 11 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
11
Dung lượng
629,66 KB
Nội dung
Bài tập lớn môn: Cơ sở liệu không gian HVTH: Phạm Thế Hùng ĐẶT VẤN ĐỀ Vấn đề tổ chức, xây dựng quản lý liệu vấn đề bản, đóng vai trị quan trọng ứng dụng GIS Dữ liệu mô tả đầy đủ, quản lý chặt chẽ, sáng giúp cho ứng dụng vận hành trơn tru Cơ sở liệu quan hệ truyền thống mô tả đầy đủ thuộc tính đối tượng khơng gian, người nghiên cứu GIS phải nghiên cứu mơ hình sở liệu quan hệ mở rộng Việc giải tập môn học “Cơ sở liệu không gian” phương pháp nghiên cứu tiếp cận với mơ hình liệu khơng gian Tên đề tài: “Mơ mơ hình quản lý hoạt động hệ thống xe bus khu vực trung tâm thành phố Hồ Chí Minh” NỘI DUNG 2.1 Mơ tả thực thể Trong mơ hình có thực thể sau đây: bus_station (Trạm xe bus): đối tượng không gian dạng điểm: gid Tự sinh chuyển từ shape file sang id: Mã trạm, kiểu varchar(10) name: Tên trạm, kiểu varchar(50) the_geom: POINT() bus_route (Tuyến xe bus): đối tượng không gian dạng đường: gid Tự sinh chuyển từ shape file sang id: Mã trạm, kiểu varchar(10) name: Tên trạm, kiểu varchar(50) the_geom: MULTILINESTRING() administrative (Đơn vị hành chính): đối tượng không gian dạng vùng gid Tự sinh chuyển từ shape file sang name: Tên trạm, kiểu varchar(50) the_geom: MULTIPOLYGON() bus_cooperative (Hợp tác xã xe bus): kiểu liệu thông thường id Mã Hợp tác xã, kiểu varchar(10) name: Tên hợp tác xã, công ty vận tải, kiểu varchar(50) quantity_of_bus: số lượng xe bus, kiểu interger addres: Địa chỉ, kiểu varchar(50) Ngồi cịn có bảng geometry_columns spatial_ref_sys dùng để mô tả kiểu liệu không gian tham chiếu không gian Một sở liệu thông thường PostgeSQL muốn tạo đối tượng không gian cần phải nạp bảng Trang Bài tập lớn môn: Cơ sở liệu không gian HVTH: Phạm Thế Hùng vào sở liệu thơng qua hai file: lwpostgis.sql spatial_ref_sys.sql Đồng thời số mối quan hệ nhiều nhiều đối tượng sinh bảng liệu thuộc tính (mơ tả chi tiết bên dưới) 2.2 Mơ tả quan hệ thực thể: - bus_station bus_route: Quan hệ nhiều – nhiều (kí hiệu M – N) (Quan hệ không gian) + Một trạm xe bus có nhiều tuyến qua + Một tuyến xe bus qua nhiều trạm khác - bus_route administrative: Quan hệ nhiều – nhiều (kí hiệu M – N) (Quan hệ khơng gian) + Trên đơn vị hành (quận, huyện) có nhiều tuyến xe bus qua + Một tuyến xe bus chạy qua nhiều đơn vị hành (quận, huyện) khác - Bus_Station Administrative: Quan hệ – nhiều (kí hiệu – M) + Một trạm xe bus thuộc đơn vị hành (quận, huyện) định + Trên đơn vị hành (quận, huyện) người ta đặt nhiều trạm xe bus khác - Bus_Route Bus_Cooperative: Quan hệ nhiều – nhiều (kí hiệu M – N) + Một tuyến xe bus đăng ký tham gia bời nhiều hợp tác xã xe bus khác + Một hợp tác xã xe bus đăng ký hoạt động nhiều tuyến xe bus Trang Bài tập lớn môn: Cơ sở liệu không gian HVTH: Phạm Thế Hùng 2.3 ER diagram with pictogram: 2.4 ER schema: bus_station gid id name the_geom (serial) (varchar) (varchar) (point) … HB.001 BTH.001 LDH.001 ……… Hong Bang Ba Thang Hai Le Dai Hanh ……… POINT POINT POINT …… bus_route gid id name the_geom (integer) (varchar) (varchar) (mutilinestring) … R.001 R.002 R.003 …… Hong Bang – Cong vien Dam Sen Ben xe Cho Lon – Thao Cam Vien Ben Thanh – Ben xe mien Dong …………… MULTILINESTRING MULTILINESTRING MULTILINESTRING ……………… Trang Bài tập lớn môn: Cơ sở liệu không gian HVTH: Phạm Thế Hùng Bus_Cooperative id name quantity_of_bus address (varchar) (varchar) (interger) (varchar) Cong ty co phan van tai Mai Linh Hop tac xa van tai xe buyt Quyet Thang Cong ty xe khach Cho Lon …… 30 15 400A, Le Hong Phong, Quan 10 78, An Duong Vuong, Quan 15 205, Phu Huu, Quan CPML HTXQT XKCL … …… …………… administrative gid name Shape (serial) (varchar) (Polygon) … Quan Quan 10 Quan Tan Binh ……… MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON ………… route_crosses_station id route_id (serial) (varchar) …… R.001 R.002 R.003 ………… station_name (varchar) Hong Bang Dai hoc Su Pham Ben xe mien Dong ……………… route_crosses_station id coop_id (serial) (varchar) route_name (varchar) …… CPML HTX195 HTXBM ………… Hong Bang – Cong vien Dam Sen Cho Lon – Cho Go Vap Ben Thanh – San bay Tan Son Nhat ……………… Trang Bài tập lớn môn: Cơ sở liệu không gian HVTH: Phạm Thế Hùng 2.5 Danh sách số câu hỏi truy vấn gợi ý: Liệt kê tất trạm mà tuyến ‘Ben xe Cho Lon – Thao Cam Vien’ qua? SELECT c.station_name, r.name AS Route_Name FROM route_crosses_station c, bus_route r WHERE (r.name = 'Ben xe Cho Lon - Thao Cam Vien') AND (c.route_id=r.id); station_name | route_name + -An Dong Plaza | Ben xe Cho Lon - Thao Cam Vien Dai hoc Su Pham | Ben xe Cho Lon - Thao Cam Vien Cong vien Tao Dan | Ben xe Cho Lon - Thao Cam Vien An Duong Vuong | Ben xe Cho Lon - Thao Cam Vien Ben xe Cho Lon | Ben xe Cho Lon - Thao Cam Vien Hung Vuong Plaza | Ben xe Cho Lon - Thao Cam Vien Dinh Thong Nhat | Ben xe Cho Lon - Thao Cam Vien Dai truyen hinh Tp.HCM | Ben xe Cho Lon - Thao Cam Vien Nga Sau Cong Hoa | Ben xe Cho Lon - Thao Cam Vien Thao Cam Vien | Ben xe Cho Lon - Thao Cam Vien Chau Van Liem | Ben xe Cho Lon - Thao Cam Vien Nguyen Trai | Ben xe Cho Lon - Thao Cam Vien (12 rows) Liệt kê tất trạm xe bus nằm Quận 1? SELECT s.name FROM bus_station s WHERE ST_Contains( (SELECT the_geom FROM administrative WHERE name = 'Quan 1') ,s.the_geom); name -Cong vien Tao Dan Dinh Thong Nhat Dai truyen hinh Tp.HCM Thao Cam Vien Cho Ben Thanh Nguyen Thi Minh Khai Cong vien Le Van Tam (7 rows) Liệt kê tất tuyến xe bus qua Quận 5? SELECT r name FROM bus_route r WHERE ST_Crosses(r.the_geom, (SELECT the_geom FROM administrative WHERE name = 'Quan 5') ); name -Ben xe Cho Lon - Thao Cam Vien Cho Lon - Cho Go Vap (2 rows) Trang Bài tập lớn môn: Cơ sở liệu khơng gian HVTH: Phạm Thế Hùng Tính tổng chiều dài tất tuyến xe bus? SELECT sum(ST_Length(the_geom)) AS km_bus FROM bus_route; km_bus -53.7695054045018 (1 row) Quận có nhiều trạm xe bus nhất? SELECT a.name AS District_Name FROM administrative a, bus_station s WHERE ST_Contains(a.the_geom,s.the_geom) ORDER BY District_Name DESC LIMIT 1; district_name Quan Tan Binh (1 row) Quận có nhiều tuyến xe bus qua nhất? SELECT a.name AS District_Name FROM administrative a, bus_route r WHERE ST_Crosses(r.the_geom,a.the_geom) ORDER BY District_Name DESC LIMIT 1; district_name Quan Tan Binh (1 row) Tuyến xe bus có lộ trình dài nhất? SELECT name, ST_length(the_geom) AS Length_Km FROM bus_route ORDER BY Length_Km DESC LIMIT 1; name | length_km + -Cho Lon - Cho Go Vap | 11.9828896181423 (1 row) Hợp tác xã có nhiều xe nhất? SELECT name, quantity_of_bus FROM bus_cooperative ORDER BY quantity_of_bus DESC LIMIT 1; name | quantity_of_bus + Cong ty co phan van tai Mai Linh | 30 (1 row) Trang Bài tập lớn môn: Cơ sở liệu không gian HVTH: Phạm Thế Hùng Hai tuyến xe bus ‘Cho Lon – Cho Go Vap’ ‘Ben Thanh – San bay Tan Son Nhat’ có cắt khơng? SELECT ST_intersects( (SELECT the_geom FROM bus_route WHERE name ='Cho Lon - Cho Go Vap'), (SELECT the_geom FROM bus_route WHERE name ='Ben Thanh - San bay Tan Son Nhat') ); st_intersects t (1 row) Liệt kê tất tuyến xe bus giao cắt với tuyến ‘Ben Thanh – San bay Tan Son Nhat’? SELECT name FROM bus_route r WHERE ST_intersects(the_geom, (SELECT the_geom FROM bus_route WHERE name ='Ben Thanh - San bay Tan Son Nhat')) AND (name !='Ben Thanh - San bay Tan Son Nhat'); name -Ben xe Cho Lon - Thao Cam Vien Ben Thanh - Ben xe mien Dong Cho Lon - Cho Go Vap (3 rows) Tìm tuyến xe bus qua nhiều quận nhất? SELECT r.name, COUNT(distinct a.name) AS district FROM administrative a, bus_route r WHERE st_crosses(r.the_geom,a.the_geom) GROUP BY r.name ORDER BY district DESC LIMIT 1; name | district + -Cho Lon - Cho Go Vap | (1 row) Tìm tuyến xe bus qua nhiều trạm nhất? SELECT r.name AS Route_Name, COUNT(c.station_name) AS Number_Station FROM route_crosses_station c, bus_route r WHERE c.route_id=r.id GROUP BY r.name ORDER BY Number_Station DESC LIMIT 1; route_name | number_station + -Ben xe Cho Lon - Thao Cam Vien | 12 (1 row) Trang Bài tập lớn môn: Cơ sở liệu khơng gian HVTH: Phạm Thế Hùng Tính khoảng cách hai trạm ‘Dai hoc Bach Khoa’ va ‘Dai hoc Su Pham’? SELECT ST_distance( (SELECT the_geom FROM bus_station WHERE name = 'Dai hoc Bach Khoa'), (SELECT the_geom FROM bus_station WHERE name ='Dai hoc Su Pham')) AS Distance_Km; distance_km -3.00883091654776 (1 row) Tính từ trạm ‘Dai hoc Bach Khoa’, liệt kê tất trạm bán kính km? Tính khoảng cách đến trạm xếp theo thứ tự từ gần đến xa? SELECT id,name,ST_distance( (SELECT the_geom FROM bus_station WHERE name ='Dai hoc Bach Khoa'),the_geom) AS Distance_Km from bus_station WHERE (ST_DWithin( (SELECT the_geom FROM bus_station WHERE NAME ='Dai hoc Bach Khoa'), the_geom,2)) AND (name !='Dai hoc Bach Khoa') ORDER BY Distance_Km; id | name | distance_km + -+ LDH.001 | Le Dai Hanh | 0.677032874539835 LTK.001 | Ly Thuong Kiet | 1.03114751093211 LLQ.002 | Lac Long Quan | 1.09247080604834 BTH.002 | Ba Thang Hai | 1.15923686339518 BT.001 | Binh Thoi | 1.42901293042356 OIK.001 | Cong vien Dam Sen | 1.78699808208386 CMT8.003 | Cach Mang Thang Tam | 1.8696803311251 BTH.001 | Ba Thang Hai | 1.90253048453201 HV.001 | Hung Vuong | 1.94893975059578 HV.002 | Hung Vuong Plaza | 1.95264094065191 (10 rows) Tính chiều dài trung bình tuyến xe bus? SELECT AVG(ST_length(the_geom)) AS Distance_Average_Km FROM bus_route; distance_average_km 8.96158423408364 (1 row) Trang Bài tập lớn môn: Cơ sở liệu không gian HVTH: Phạm Thế Hùng Tìm quận tuyến xe ‘Cong ty co phan van tai Mai Linh’ có ID ‘CPML’? SELECT distinct r.name FROM bus_route r, bus_cooperative c, route_of_cooperative rc WHERE ST_Crosses(r.the_geom, (SELECT the_geom FROM administrative WHERE name ='Quan 5')) AND (c.id='CPML') AND (c.id=rc.coop_id); name -Ben xe Cho Lon - Thao Cam Vien Cho Lon - Cho Go Vap (2 rows) 2.6 Sử dụng Quantum GIS để hiển thị liệu khơng gian 2.6.1 Giới thiệu Quantum GIS hay cịn gọi Qgis phần mềm GIS mã nguồn mở với tính thao tác lớp đồ chủ yếu dạng vector Dự án Qgis khởi đầu vào tháng năm 2002 Ý tưởng hình thành vào tháng năm Gary Sherman nỗ lực để tạo phần mềm hiển thị file liệu GIS chạy hệ điều hành mã nguồn mở Linux phần mềm xây dựng sở ngơn ngữ lập trình C++ Đến tháng năm 2002, đăng ký SourceForge Giao diện Quantum GIS 2.6.2 Tính Quantum GIS Trang Bài tập lớn môn: Cơ sở liệu khơng gian HVTH: Phạm Thế Hùng Qgis đọc nhiều dạng liệu: lớp đồ tạo ArcView, MapInfo GRASS, bảng thông tin tạo PostgreSQL (thơng qua PostGIS) Số hóa đồ cơng cụ kết nối với GPS Các tính biên tập đồ, tạo lưới kinh vĩ độ, chèn thang tỉ lệ, mũi tên hướng bắc Phân tích khơng gian nhờ PostGIS kết nối với GRASS GIS Thay đổi tính thơng qua chế plug-in 2.6.3 Các thao tác kết nối với sở liệu PostGIS - Chọn Layer\ Add PostGIS Layer - Tại cửa sổ Add PossGIS Table, chọn New để tạo kết nối mới, điền đầy đủ thông số vào sau thực kết nối Ví dụ: Name: Ket noi voi PostGIS Host: localhost Database baitap Port 5432 Username: postgres Password: ********* Kết nối với sở liệu postGIS Trang 10 Bài tập lớn môn: Cơ sở liệu khơng gian HVTH: Phạm Thế Hùng - Sau chọn đối tượng không gian để thị - Ta thực câu truy vấn đơn giản hiển thị liệu - Quantum GIS hỗ trợ số chức phần mềm GIS: Zoom, Pan, Phân loại đối tượng dựa thuộc tính,… Hiển thị liệu khơng gian TÀI LIỆU THAM KHẢO [1] Đỗ Trung Tuấn (2004) Cơ sở liệu Nhà xuất Đại học quốc gia thành phố Hồ Chí Minh, thành phố Hồ Chí Minh [2] Ralf Hartmut Guting Tutorial Spatial Database System Germany [3] PostGIS 1.3.5 Manual [4] Quantum GIS Documentation Version 1.01 [5] Website Bách khoa toàn thư: http://en.wikipedia.org/ [6] Website SQL Tutorial: http://www.w3schools.com/SQL/ Trang 11 ... hiệu M – N) + Một tuyến xe bus đăng ký tham gia bời nhiều hợp tác xã xe bus khác + Một hợp tác xã xe bus đăng ký hoạt động nhiều tuyến xe bus Trang Bài tập lớn môn: Cơ sở liệu không gian HVTH:... Hiển thị liệu không gian TÀI LIỆU THAM KHẢO [1] Đỗ Trung Tuấn (2004) Cơ sở liệu Nhà xuất Đại học quốc gia thành phố Hồ Chí Minh, thành phố Hồ Chí Minh [2] Ralf Hartmut Guting Tutorial Spatial Database... tả quan hệ thực thể: - bus_ station bus_ route: Quan hệ nhiều – nhiều (kí hiệu M – N) (Quan hệ không gian) + Một trạm xe bus có nhiều tuyến qua + Một tuyến xe bus qua nhiều trạm khác - bus_ route