Báo cáo thực tập tốt nghiệp Trung tâm ứng dụng Hệ thông tin địa lý của Sở Khoa Học - Trung tâm có nhiệm vụ nghiên cứu và triển khai ứng dụng bao gồm: Tổ chức nghiên cứu và ứng dụng các
Trang 1MỤC LỤC
LỜI CẢM ƠN
NHẬN XÉT CỦA BỘ MÔN
TỔNG QUAN VỀ NƠI THỰC TẬP
1 SƠ LƯỢC VỀ SỞ KHOA HỌC CÔNG NGHỆ TPHCM: 7
2 SƠ LƯỢC VỀ TRUNG TÂM ỨNG DỤNG HỆ THÔNG TIN ĐỊA LÝ: 8
TÌM HIỂU LUẬN VĂN: NGHIÊN CỨU WEBGIS PHỤC VỤ DU LỊCH 1 GIỚI THIỆU TỔNG QUÁT VỀ ĐỀ TÀI: 10
1.1 NỘI DUNG NGHIÊN CỨU: 10
1.2 PHẠM VI NGHIÊN CỨU: 10
1.2.1 Về giới hạn địa lý: 10
1.2.2 Về công nghệ: 10
1.2.3 Về phần mềm: 10
2 GIỚI THIỆU VỀ WEBGIS: 10
2.1 SƠ ĐỒ HOẠT ĐỘNG CỦA WEBGIS: 11
2.2 PHÂN LOẠI WEBGIS: 11
2.2.1 Theo kiến trúc: 11
2.2.2 Theo kỹ thuật: 11
2.2.3 Theo dịch vụ: 12
2.3 CÁC CHIẾN LƯỢC PHÁT TRIỂN WEBGIS: 13
2.3.1 Server side: 13
2.3.2 Client side: 13
Trang 2Báo cáo thực tập tốt nghiệp Trung tâm ứng dụng Hệ thông tin địa lý của Sở Khoa Học
Công Nghệ TPHCM
3.2 XÂY DỰNG: 15
4.1.1 Xây dựng các máy chủ cung cấp dịch vụ dữ liệu: 15
3.2.2 Xây dựng ứng dụng tích hợp dữ liệu và cung cấp web 16
TÌM HIỂU VỀ PHẦN MỀM MÃ NGUỒN MỞ: 1 TỔNG QUAN VỀ PHẦN MỀM MÃ NGUỒN MỞ: 17
2 PHẦN MỀM GVSIG: 18
2.1 GIỚI THIỆU SƠ LƯỢC VỀ GVSIG: 18
2.2 CÁC KHẢ NĂNG TÍCH HỢP CỦA GVSIG: 20
2.3 MỘT SỐ TÌM HIỂU VỀ CẤU TRÚC PHẦN MỀM GVSIG: 20
3 PHẦN MỀM POSTGRES: 25
3.1 GIỚI THIỆU SƠ LƯỢC VỀ POSTGRES: 25
3.2 SỬ DỤNG POSTGRES: 26
4 GIỚI THIỆU VỀ MAPSERVER: 29
4.1 PHẦN MỀM MÃ NGUỒN MỞ MAPSERVER: 29
4.2 MAPFILE CỦA MAPSERVER: 30
TỔNG QUAN VỀ GOOGLE MAPS API TỔNG QUAN VỀ GOOGLE MAPS API 34
1 LỚP GMAP2: 34
2 SỰ KIỆN LISTENER: 34
3 CỬA SỔ THÔNG TIN: 34
5 LỚP PHỦ (OVERLAY): 34
6 CÁC ĐIỀU KHIỂN: 35
7 XML VÀ RPC: 35
8 GIẢM LỖI RÒ RỈ BỘ NHỚ CỦA TRÌNH DUYỆT: 35
CÁC CÔNG VIỆC ĐÃ THỰC HIỆN TRONG KÌ THỰC TẬP 1 TÌM LỖI BẰNG CHƯƠNG TRÌNH GVSIG: 37
1.1 YÊU CẦU: 37
1.2 THỰC HIỆN: 38
Trang 2
Trang 32 NHẬP LIỆU BẰNG CHƯƠNG TRÌNH GVSIG: 41
2.1 YÊU CẦU: 41
2.2 THỰC HIỆN: 42
3 TẠO GEODATABASE BẰNG CHƯƠNG TRÌNH GIS: 45
3.1 YÊU CẦU: 45
3.2 THỰC HIỆN: 46
Trang 4Báo cáo thực tập tốt nghiệp Trung tâm ứng dụng Hệ thông tin địa lý của Sở Khoa Học
Công Nghệ TPHCM
TỔNG QUAN VỀ NƠI THỰC TẬP
1 SƠ LƯỢC VỀ SỞ KHOA HỌC CÔNG NGHỆ TPHCM:
- Ngày 6 tháng 8 năm 1976, cơ quan quản lý khoa học của Thành phố Hồ Chí Minh rađời mang tên BAN KHOA HỌC & KỸ THUẬT theo Quyết định số 1810/QĐ-UB củaUBND TP HCM
- Ngày 10 tháng 3 năm 1984 được đổi tên thành ỦY BAN KHOA HỌC VÀ KỸTHUẬT theo Quyết định số 45/QĐ-UB của UBND TP HCM
- Ngày 29 tháng 1 năm 1994 được đổi tên thành SỞ KHOA HỌC, CÔNG NGHỆ VÀMÔI TRƯỜNG theo Quyết định số 340/QĐ-UB-NC của UBND TP HCM
- Ngày 18 tháng 7 năm 2003 được đổi tên thành SỞ KHOA HỌC VÀ CÔNG NGHỆtheo Quyết định số 123/QĐ-UB của UBND TP HCM
- Đại hội Đảng bộ Thành phố Hồ Chí Minh lần VI và VII đã đánh giá:
Hoạt động KH&CN TP HCM đã có những đóng góp tích cực trong quá trìnhđổi mới cơ chế quản lý, nâng cao năng suất, chất lượng và hiệu quả sản xuất -kinh doanh
Hoạt động KH&CN là một thế mạnh của TP HCM với tiềm lực lớn cả về độingũ và trình độ Thế mạnh đó phải trở thành động lực thúc đẩy sự phát triển củathành phố và của toàn vùng
Sơ đồ tổ chức Sở Khoa Học Công Nghệ TPHCM:
Trang 4
Trang 52 SƠ LƯỢC VỀ TRUNG TÂM ỨNG DỤNG HỆ THÔNG TIN ĐỊA LÝ:
Quyết định thành lập đơn vị
- Trung tâm Ứng dụng Hệ thống thông tin địa lý Thành phố Hồ Chí Minh đượcthành lập theo quyết định số 134/2004/QĐ-UB ngày 14 tháng 5 năm 2004 củaỦy ban Nhân dân Thành phố
Ban lãnh đạo
- Giám đốc: Ông Nguyễn Khắc Thanh
- Phó Giám đốc: Ông Phạm Quốc Phương
Chức năng, nhiệm vụ, quyền hạn
- Giúp Sở Khoa học và Công nghệ tham mưu cho Ủy ban Nhân dân thành phố
về chiến lược, kế hoạch xây dựng, vận hành và phát triển hệ thống thông tin
Trang 6Báo cáo thực tập tốt nghiệp Trung tâm ứng dụng Hệ thông tin địa lý của Sở Khoa Học
- Trung tâm có nhiệm vụ nghiên cứu và triển khai ứng dụng bao gồm:
Tổ chức nghiên cứu và ứng dụng các công nghệ có liên quan đến quản
lý và khai thác hệ thống thông tin địa lý
Nghiên cứu, đánh giá, xây dựng chiến lược, quy hoạch sử dụng và khaithác dữ liệu thông tin địa lý trên địa bàn thành phố
- Đào tạo, tuyên truyền và phổ biến về hệ thống thông tin địa lý Nhà nướcthành phố Hồ Chí Minh:
Tham gia tổ chức đào tạo, bồi dưỡng kiến thức sử dụng hệ thống thông tin địa lý (GIS) và các nội dung liên quan cho các cơ quan quản lý Nhà nước, các đơn vị nghiên cứu, các doanh nghiệp và các tổ chức, cá nhân
Phối hợp với các Sở ban ngành, quận-huyện và các đơn vị có liên quancủa thành phố triển khai các hoạt động về quản lý hệ thống thông tinđịa lý đã được các cấp có thẩm quyền thống nhất và phê duyệt
Nhân lực hiện có: 11 người
Bộ phận quản lý gồm: 01 Giám đốc + 01 Phó Giám đốc + 3 Trưởng phòng
Bộ phận kỹ thuật: 05 chuyên viên kỹ thuật
Trang 6
Trang 7 Bộ phận kế toán văn phòng: 02 chuyên viên
Trang 8Báo cáo thực tập tốt nghiệp Trung tâm ứng dụng Hệ thông tin địa lý của Sở Khoa Học
Công Nghệ TPHCM
GIỚI THIỆU VỀ WEBGIS
1 GIỚI THIỆU TỔNG QUÁT VỀ ĐỀ TÀI:
- Nghiên cứu WebGIS phục vụ du lịch
1.2 Nội dung nghiên cứu:
- Nghiên cứu về WebGIS, các mô hình WebGIS
- Phân tích nhu cầu cung cấp các thông tin du lịch GIS trên website
- Xây dựng WebGIS phục vụ du lịch: Thiết kế cơ sở dữ liệu, thiết kế hệ thống website,thiết kế giao diện các trang web và xây dựng các công cụ hỗ trợ tương tác trên bảnđồ
Sử dụng phần mềm MapServer để xây dựng WebGIS:
Là phần mềm cho phép tạo ra các bản đồ động và trình bày dữ liệu khônggian trên web
Phần mềm được viết trên công nghệ mã nguồn mở
2 GIỚI THIỆU VỀ WEBGIS:
- WebGIS được xem như là một hệ thống thông tin địa lý được phân bố qua môitrường mạng máy tính để tích hợp, phân phối và truyền tải thông tin địa lý trực diệntrên www thông qua Internet
Trang 8
Trang 91.2 Sơ đồ hoạt động của WebGIS:
Khi có yêu cầu phát sinh: Client WebServer Nếu yêu cầu có liên quanđến bản đồ: WebServer MapServer xử lý Tại MapServer, yêu cầu sẽ đượcphân loại, chương trình thực thi trên MapServer truy cập vào cơ sở dữ liệu đểlấy dữ liệu Trong quá trình truy cập, chương trình thực thi tham chiếu đếntệp tin cấu hình bản đồ (config_mapfile)
Dữ liệu lấy về WebServer, WebServer tham chiếu đến tệp tin mẫu(html template) để tạo ra kết quả Kết quả Client để hiển thị
Chu trình tiếp tục
1.3 Phân loại WebGIS:
1.3.1 Theo kiến trúc:
Thuần Server: Máy chủ đảm nhiệm tất cả các công việc bao gồm lưu dữ
liệu và phân tích dữ liệu
Thuần Client: Máy khách được cung cấp các chức năng để xử lý các yêu
cầu mà không cần phải gửi về cho máy chủ xử lý
Kết hợp Server và Client: dữ liệu lưu trên máy chủ, các chức năng xử lý
đặt tại máy khách Hoặc máy chủ cung cấp các chức năng, dữ liệu lưu ởmáy khách Hoặc cũng có thể kết hợp theo cách dữ liệu và chức năng vừalưu ở máy chủ, vừa cung cấp các chức năng xử lý đơn giản cho máykhách,…
Trang 10Báo cáo thực tập tốt nghiệp Trung tâm ứng dụng Hệ thông tin địa lý của Sở Khoa Học
Công Nghệ TPHCM
một chương trình đang chạy trên Server, chương trình này có khả năng đápứng đầy đủ các yêu cầu
Các giải pháp dự trên JAVA: Java là ngôn ngữ lập trình độc lập có thể
được phiên dịch bởi trình duyệt Web Ưu diểm của việc dùng Java là côngviệc có thể thực thi trên máy khách mà không cần phải truyền về máy chủ.Nhược điểm là việc sử dụng Java để giải quyết công việc hiện nay trênmạng là rất chậm, vài ứng dụng Java không hoạt động sau bức tường lửa
1.2.1 Theo dịch vụ:
Geodata Sever: cung cấp các dữ liệu có sẵn và không cần phải số hóa.
Máy khách download dữ liệu về và dùng các chương trình GIS trên máykhách để xử lý dữ liệu
Map Sever: máy chủ xử lý toàn bộ, máy khách chỉ hiển thị các bản đồ
do máy chủ cung cấp
Online Retrieval System: Phân phối các bản đồ chuyên đề và một sốhàm phân tích Dữ liệu trả về cho máy khách là dữ liệu đã được phântích
Online GIS: Lớn hơn Online Retrieval System vì nó có khả năng thực
hiện các chức năng phân tích thực (real analysis functions) trên các tiếntrình của dữ liệu đưa vào
GIS Function Server: trả về dữ liệu và các chương trình phân tích nhỏ
để máy khách có thể xử lý GIS Function Server cung cấp các chứcnăng GIS giải quyết trên dữ liệu do người dùng Upload lên hoặc cungcấp các hàm phân tích cho máy khách download về
Chức năng của các loại dịch vụ (những chức năng thuộc về máy chủ)
Quản lý
dữ liệu Hiển thị
Phân tích vàtrả dữ liệu
Phân tíchGIS
Trang 11Các loại dữ liệu mà máy khách nhận được:
Dữ liệu khônggian(thô) Đồ họa Báo cáo
Web Map Service (WMS): là một trong các chuẩn phổ biến nhất của
OGC WMS tạo ra các bản đồ dưới dạng ảnh Các bản đồ này tự bảnthân chúng không chứa dữ liệu
Web Feature Service (WFS): cung cấp các đối tượng dữ liệu dưới dạng
định dạng thống nhất GML Dữ liệu mà Client nhận được là một đặc tả
về dữ liệu không gian và thông tin thuộc tính kèm theo
Web Coverage Service (WCS): cung cấp dữ liệu dưới dạng Coverage.
Coverage là loại dữ liệu biểu diễn các hiện tượng thay đổi theo khônggian
1.3 Các chiến lược phát triển WebGIS:
1.3.1 Server side:
Tập trung cung cấp dữ liệu GIS và phân tích trên một máy chủ (Server), máy khách sẽ chỉ sử dụng rất ít tiến trình, chủ yếu là gửi các yêu cầu và hiển thị kết quả Chiến lược này thường được sử dụng cho các hệ thống lớn trên toàn cầu
1.3.2 Client side:
Chiến lược này chuyển đổi các yêu cầu sang được xử lý tại máy khách Chiến lược này thường được sử dụng cho các hệ thống nhỏ trong phạm
vi cục bộ
Trang 12Báo cáo thực tập tốt nghiệp Trung tâm ứng dụng Hệ thông tin địa lý của Sở Khoa Học
Công Nghệ TPHCM
1.2.1 Kết hợp lai các chiến lược:
Server side và client side có thể kết hợp với nhau để cho ra các kết quả lai phù hợp với khả năng của server và client
3 XÂY DỰNG WEBGIS PHỤC VỤ DU LỊCH:
1.2 Phân tích:
3.1.1 Phân loại thông tin:
Bao gồm 2 loại thông tin:
Thông tin không gian
Thông tin thuộc tính
1.2.1Phân tích hệ thống và định hướng công nghệ:
1.2.1.1 Máy chủ WFS được chọn để giả lập Server cung cấp dữ liệu
- Phần mềm UNM MapServer 4.8.4 được dùng để giả lập các máy chủ cung cấp
dữ liệu và dùng để xây dựng ứng dụng tích hợp dữ liệu
- Ngôn ngữ PHP được sử dụng để phát triển các công cụ và website
- Apache 2.0.58 được sử dụng làm trình chủ WebServer MySQL 4.0.20a đượcdùng để lưu dữ liệu thuộc tính
1.2.1.2 Thiết kế:
1.2.1.2.1 Thiết kế kiến trúc:
- Hệ thống được xây dựng dựa trên kiến trúc Client – Server
- Chiến lược phát triển theo hướng Server-side được chọn để giảm thiểu cácchức năng phân tích cho phía người dùng
Trang 12
Trang 13- Cơ chế hoạt động của hệ thống như sau:
Trình duyệt gửi yêu cầu đến WebServer
WebServer gửi yêu cầu đến Application Server để phân tích Nếu yêu cầu
có liên quan đến bản đồ thì Application Server lấy dữ liệu từ các WFSServer để tích hợp lại thành bản đồ và gửi trả về cho WebServer
WebServer gửi kết quả về cho trình duyệt Nếu yêu cầu liên quan đếnthông tin thuộc tính thì Application Server sẽ kết nối đến RDBMS để lấy
dữ liệu về xử lý và gửi trả kết quả về cho WebServer
WebServer gửi kết quả về cho trình duyệt
Chu trình cứ thế tiếp tục
1.2.1.2.2 Thiết kế cơ sở dữ liệu:
- Trong một cơ sở dữ liệu GIS thường bao gồm các lớp dữ liệu Trong mỗi lớp dữ liệu bao gồm dữ liệu không gian và thuộc tính
- Cơ sở dữ liệu được thiết kế theo kiến trúc đối ngẫu:
Phần không gian được cài đặt trong các lớp dữ liệu ở định dạngShapefile
Phần thuộc tính được cài đặt trong cơ sở dữ liệu MySQL
Các thực thể trong hai phần quan hệ với nhau thông qua mã nhậndạng (ID)
- Một lớp dữ liệu không gian bao gồm 3 trường:
Shape (lưu dạng hình học của thực thể)
ID (lưu mã nhận dạng thực thể
TEN (lưu trữ tên đối tượng)Tùy thuộc vào loại thực thể mà định dạng Shape sẽ khác nhau (Point,PolyLine, Polygon)
1.2.1.2.3 Thiết kế chức năng:
Trang 14Báo cáo thực tập tốt nghiệp Trung tâm ứng dụng Hệ thông tin địa lý của Sở Khoa Học
Công Nghệ TPHCM
- Sơ đồ các chức năng chính:
1.2.1.2.4 Thiết kế giao diện:
Giao diện quản trị:
Sơ đồ Web quản trị: Sơ đồ web dành cho người quản trị bao gồm cáctrang: đăng nhập, quản trị các chuyên đề (thêm, xóa, sửa từng chuyênđề)
Trang 14
Trang 15 Giao diện người dùng:
Sơ đồ Web người dùng: Bao gồm các giao diện tương ứng với các chyên đề
Trang 16Báo cáo thực tập tốt nghiệp Trung tâm ứng dụng Hệ thông tin địa lý của Sở Khoa Học
Công Nghệ TPHCM
1.3 Xây dựng:
3.2.1 Xây dựng các máy chủ cung cấp dịch vụ dữ liệu:
- Hệ thống giả lập hai máy chủ WFS Server để cung cấp dữ liệu:
WFS Server 1 sẽ cung cấp các lớp dữ liệu nền (quận, phường, đường giaothông, sông hồ)
WFS Server 2 sẽ cung cấp các lớp dữ liệu chuyên đề về du lịch (bảo tàng,bến xe, bệnh viện, chợ, cơ sở tôn giáo, công ty lữ hành, danh lam, kháchsạn, khu vui chơi, lễ hội, làng quê, làng nghề, nhà hàng)
- Để xây dựng WFS Server, MapServer cần tham chiếu đến tệp tin cấu hình (mapfile) mô tả nơi chứa dữ liệu và kiểu dữ liệu của các lớp
Sơ đồ truy cập dữ liệu của WFS Server
1.2.1 Xây dựng ứng dụng tích hợp dữ liệu và cung cấp web
- Ứng dụng tích hợp dữ liệu và cung cấp web đảm nhiệm chức năng xử lý cácyêu cầu từ trình duyệt bằng cách phân tích yêu cầu, tích hợp dữ liệu từ các máychủ WFS Server để tạo ra bản đồ cung cấp cho trình duyệt hiển thị
- Phần mềm UMN MapServer hỗ trợ chức năng WFS Client, cho phép tích hợp
các dữ liệu từ nhiều nguồn theo phương thức chồng lớp để tạo ra bản đồ
Sơ đồ tích hợp dữ liệu của Application Server
Trang 16
Trang 171.2.1.1 Tệp tin cấu hình tích hợp dữ liệu:
- Tệp tin cấu hình tích hợp dữ liệu để tạo ra bản đồ
- Được xây dựng theo mẫu qui định của MapServer
- Trong tệp tin này cần khai báo về các nguồn dữ liệu, các lớp dữ liệu,cách hiển thị các lớp dữ liệu
Công cụ xem toàn phần
Công cụ dịch chuyển theo các hướng:
Công cụ hiển thị/tắt các lớp
Công cụ xem thông tin đối tượng không gian
Công cụ tìm đối tượng không gian dựa vào thông tin thuộc tính
Trang 18Báo cáo thực tập tốt nghiệp GVHD: Th.S Phan Hiền Vũ
TÌM HIỂU VỀ PHẦN MỂM MÃ NGUỒN MỞ
1 TỔNG QUAN VỀ PHẦN MỀM MÃ NGUỒN MỞ:
- Phần mểm mã nguồn mở có thể được định nghĩa như là những phần mềm cho phép người dùng xem xét cách thức mà phần mềm hoạt động để có thể hiệu chỉnh hay phát triển thêm theo ý mình, có thể sử dụng dưới nhiều mục đích, dưới nhiều máy khác nhau hay có thể phân phối lại tùy ý
- Những lợi ích thu được từ việc chuyển sang hệ thống mã nguồn mở:
Chi phí thấp, tránh các khoản đăng ký
Không còn việc lệ thuộc vào định dạng và công nghệ của bất kỳ công ty nào, thoát khỏi các quy luật thị trường, có thêm sự riêng tư và tính bảo mật
Khả năng thích ứng, sửa đổi, bổ sung và kiểm tra lỗi là nhanh hơn
- Mã nguồn mở đang được tiếp tục hoàn thiện để đưa ra sản phẩm mới nhất và một trong những lợi thế hơn hết là việc sử dụng các tiêu chuẩn này đã được thống nhất trên tất cả các cấp tương tác người dùng
- Các đặc điểm chính của dự án phần mềm mã nguồn mở:
Tự do để chạy chương trình, cho bất cứ mục đích nào
Tự do để nghiên cứu cách thức chương trình hoạt động, và điều chỉnh nó cho nhucầu bản thân (tự do 1) Truy cập vào mã nguồn là một điều kiện tiên quyết của việc này
Tự do phân phối lại các bản sao để bạn có thể giúp đỡ bạn bè của bạn (tự do 2)
Tự do để cải thiện chương trình, chia sẻ phiên bản cải tiến của bạn cho mọi người, từ đó đem lại lợi ích cho toàn bộ cộng đồng Truy cập vào mã nguồn là một điều kiện tiên quyết của việc này
- Được xây dựng trên các hệ điều hành mã nguồn mở, dựa trên các cơ sở dữ liệu, dịch vụ web và các kỹ thuật phát triển phần mềm, ngày nay tồn tại rất nhiều những hệ thống mã nguồn mở trong lĩnh vực ứng dụng GIS Ví dụ như:
Hệ quản trị CSDL không gian POSTGIS
Môi trường phân tích dữ liệu GRASS
Kỹ thuật máy chủ cho web như: MapServer, GeoServer, Deegree
Những công cụ cho máy trạm như: MapBuider, MapDender
Những công cụ GIS chuyên nghiệp cho máy destop thông thường như gvSIG
- Xét về khía cạnh tích hợp dữ liệu thì các phần mềm mã nguồn mở có khả năng hỗ trợ mạnh mẽ đối với chuẩn OGC bao gồm cả các dịch vụ web và dữ liệu không gian
Trang 191.2 Giới thiệu sơ lược về gvSIG:
- GvSIG được bắt đầu xây dựng vào năm 2002 khi Bộ Quản lý Cơ sở hạ tầng và Giaothông vận tải (CIT) của Valencia bắt đầu xem xét quá trình cải tổ toàn bộ hệ thống máy vi tính để tổ chức một hệ thống mã nguồn mở
- Dựa trên các tiêu chuẩn hiện hành, gvSIG phải tuân thủ theo các tiêu chuẩn về GIS được quy định tại Open Geospatial Consortium (OGC - tổ chức phi lợi nhuận đưa racác chuẩn về dữ liệu địa lý và dịch vụ) Việc tuân thủ các tiêu chuẩn này là để đảm bảo sự tương tác tốt nhất giữa tất cả các ứng dụng của GIS
- Bản đầu tiên của gvSIG đã được phát hành vào tuần thứ hai của tháng 10/2004, các phiên bản mới đã được phát hành liên tục, cho đến nay là phiên bản 1.0
- gvSIG tích hợp dễ dàng với các hạ tầng dữ liệu không gian bằng cách kết nối tới bản
đồ chuẩn, các đối tượng, các tập hợp dữ liệu raster của dịch vụ web xuyên suốt chiều giao thức khác nhau kể cả dịch vụ thương mại ArcIMS Nó có thể chồng lớp các dữ liệu từ xa với những dữ liệu của người dùng ở khu vực của họ dưới dạng các tập tin riêng lẻ hoặc là các cơ sở dữ liệu không gian như PostGIS hay Oracle Thêm nữa nó còn bao gồm 1 môi trường biên tập giống như các môi trường biên tập CAD,các chức năng xử lý dữ liệu không gian vector và các công cụ phân tích ảnh
gvSIG Ứng dụng GIS desktop:
Với tư cách là một ứng dụng GIS, gvSIG có khả năng làm việc với hầu hết các định dạng dữ liệu raster và vector như shapefile, dxf, dwg, dgn và hầu hết các cơ sở dữ liệu địa lý không gian như postgis, mysql, oracle, sde… Nó cung cấp các công cụ GIS thông dụng như tải dữ liệu, định hướng bản đồ, truy vấn các thông tin bản đồ,
đo lường khoảng cách, biên tập chú, gán nhãn, về chọn đối tượng dữ liệu bảng thì cócác công cụ thống kê, sắp xếp, liên kết bảng, quản lý layout, các công cụ xử lý đối tượng địa lý, CAD, xử lý raster, vv… Khách hàng của SDI phải thực hiện kết nối thông qua việc sử dụng các tiêu chuẩn để các dịch vụ OGC như OGC WMS, OGC WFS, OGC WCS truy cập dữ liệu và có thể chồng lớp và tích hợp dữ liệu trong gvSIG Ngoài ra trong gvSIG còn có dịch vụ địa phương hóa dữ liệu nguồn trong SDI
gvSIG Xét về khía cạnh tích hợp cơ sở dữ liệu không gian:
- Dự án gvSIG phát triển trong lúc SDI đang là một mô hình mới để quản lý thông tinđịa lý tham khảo
Trang 20Báo cáo thực tập tốt nghiệp GVHD: Th.S Phan Hiền Vũ
Hình 1 Kiến trúc SDI cấp độ cao, lấy từ Smits 2002
- Để truy cập, chia sẻ và tích hợp thông tin địa lý không gian, người dùng truy cập vào các dịch vụ phân phối chuẩn, các dịch vụ đó sẽ hiển thị các giao diện chuẩn theoOGC Sau đó SDI chuyển các ứng dụng GIS cho SOA (Mô hình dịch vụ dẫn
đường), là nơi mà thông tin, dữ liệu và các dịch vụ được phân cấp và phân phối Việc tích hợp dữ liệu không gian qua Web bao hàm một số các thành phần và dịch
vụ kết nối Internet kèm theo mô hình SDI
- Theo hầu hết các định nghĩa về SDI như của GSDI, FGDC và hiện nay là INSPIRE,
dữ liệu địa lý được truy cập từ xa, và sau đó có thể được xử lý từ xa hoặc được tải
về để xử lý cục bộ ở trình ứng dụng của người dùng Việc xử lý trực tuyến hay cục
bộ phụ thuộc vào số lượng người dùng nhiều hay ít
- gvSIG có giao diện kết nối người dùng theo các tiêu chuẩn sau đây:
Dịch vụ Web Mapping (WMS): dữ liệu raster và vector trả về thông tin dưới
dạng hình ảnh bản đồ WMS cho ra bản đồ tham chiếu dữ liệu không gian động
từ các thông tin địa lý Theo định nghĩa quốc tế, hình ảnh trả về nói trên là một
"bản đồ" thể hiện thông tin địa lý dưới dạng ảnh số thích hợp cho việc hiển thị trên màn hình máy tính Một bản đồ tự thân nó không phải là 1 dữ liệu Các bản đồ được trả về thường có các định dạng ảnh như: PNG, GIF hoặc JPEG
Dịch vụ Web Feature (WFS): Nâng cao quyền truy cập vào dữ liệu vector
Bằng cách sử dụng phần mềm gvSIG, thông qua dịch vụ khách WFS này, người dùng có thể thực hiện truy cập dữ liệu thao tác tính toán trên dữ liệu địa
lý sử dụng giao thức HTTP như là cách phân phối dữ liệu dựa trên nền máy tính Truy cập vào dữ liệu vector từ xa cho phép người dùng thao tác và sử dụng tất cả các công cụ gvSIG để làm việc với dữ liệu vector như phân tích, tích hợp…
Dịch vụ Web Coverage (WCS): Nâng cao quyền truy cập vào thông tin raster.
WCS cho phép người dùng truy cập vào các thông tin địa lý từ xa và thực hiện chồng lớp dữ liệu raster này lên lớp dữ liệu raster có sẵn Tất cả các công cụ gvSIG có thể được sử dụng để làm việc với dữ liệu raster từ xa này
Trang 21với các lớp khác nhau từ các nguồn dữ liệu và cơ sở dữ liệu không gian, các lớp được cung cấp thông qua chuẩn OGC
- Bên cạnh các dịch vụ này, để truy cập, hiển thị và chỉnh sửa dữ liệu, OGC chỉ định một loại hình dịch vụ khác: dịch vụ tìm kiếm dữ liệu có sẵn trong SDI Những dịch
vụ này rất quan trọng cho việc truy cập dữ liệu khi không biết vị trí của dữ liệu Những dịch vụ đã thực thi trong gvSIG là:
Dịch vụ danh mục: Cho phép người dùng thực hiện việc tìm kiếm nguồn bản
đồ, người sử dụng có thể tìm kiếm theo từ khóa như: tên, chủ đề, quy mô Kết quả được trả về nếu dữ liệu của dữ liệu có bao gồm dữ liệu hay đường dẫn đến các dịch vụ cung ứng dữ liệu
Dịch vụ từ điển địa lý: là một dịch vụ cung cấp danh sách các thuật ngữ địa
lý, ví dụ như với mỗi địa danh sẽ có thông tin về các tọa độ địa lý Dịch vụ từ điển địa lý có nhiệm vụ tìm kiếm địa điểm của một địa danh chắc chắn nào đó
và với tọa độ được trả về người sử dụng sẽ tự động đánh dấu nơi cần tìm thôngqua hình ảnh đồ họa được thể hiện trên màn hình
- gvSIG cho phép tích hợp các dữ liệu được cung cấp bởi các dịch vụ SDI, gvSIG mang đến một chức năng đầy đủ cho người sử dụng GIS
1.3 Các khả năng tích hợp của gvSIG:
- gvSIG tích hợp bộ công cụ nâng cao từ CAD
- gvSIG tích hợp bộ công cụ nâng cao xử lý Raster
- gvSIG tích hợp các công cụ nâng cao khác, ví dụ như: chuyển đổi dữ liệu qua lại giữa hai kiểu vector và raster Những chức năng nâng cao mới như tạo cấu trúc nối kết mạng, tính toán tuyến đường đi tối ưu, chuẩn hóa dữ liệu địa lý, hiển thị 3D, các thủ thuật tạo biểu đồ chức năng, lập báo cáo, thủ thuật xuất bản theo chuẩn OGC
1.4 Một số tìm hiểu về cấu trúc phần mềm gvSIG:
- gvSIG là một hệ thống phát triển theo dạng từng module riêng lẻ (Lập trình theo
module là một kiểu lập trình cắt nhỏ các chức năng chương trình thành ra các module, mỗi module thực hiện một chức năng và chứa tất cả các mã cũng như các biến cần để hoàn thành chức năng đó)
- Các gói trong gvSIG:
Xem xét cấu trúc của một gói:
Trang 22Báo cáo thực tập tốt nghiệp GVHD: Th.S Phan Hiền Vũ
Gói Andami:
Gói Andami chứa các ứng dụng cơ bản và có các nhiệm vụ như sau:
Nạp các plugins và các extensions của nó
Quản lý việc dịch ngôn ngữ
Quản lý giao diện mặc định với các ứng dụng cũng như những giao diện thông tin, giao diện chào mừng, splash
Gói Andami bao gồm một chuỗi các lớp phục vụ cho extension có thể liệt kê như sau:
Lớp com.iver.andami Launcher.java là phần lõi của ứng dụng
Trong khi làm việc với các extensions, chúng ta thường sử dụng
lớp com.iver.andami.PluginServices, là lớp hỗ trợ các service
plugins với các hàn thong dụng như sau:
getMainFrame () => lấy cửa số ứng dụng chính
getMDIManager () => thông qua lớp này, chúng ta truy xuất
đến cửa sổ đang kích hoạt (phương thức
PluginServices.getMDIManager () getActiveWindow ()),
được sử dụng trong nhiều trường hợp khi xây dựng extension
isEnabled và isVisible Công dụng còn được ứng dụng để thêm
mới cửa sổ và một số việc khác
getDlgPreferences () => lấy thông tin của hộp thoại một khi tất
cả các cấu hình đã được đăng ký
getArguments () => lấy các tham số của dòng lệnh
getExtension (Class) => khi triệu gọi phương thức này, chúng
ta nhận được một trường hợp của extension gọi lớp hiện tại Nếu
lệnh triệu gọi trong phương thức initialize (), chúng ta phải đảm
bảo chắc rằng extension đã được khởi tạo
getText (Object, String) => được sử dụng để xử lý việc dịch
giữa các ngôn ngữ Từ plugin và key, chúng ta có thể chuyển sang ngôn ngữ hiện tại
registerKeyStroke (KeyStroke) => phục vụ truy cập nhanh key
toàn cục
Các cửa sổ trong Andami được xem như các đơn vị độc lập
Các cửa sổ trong Andami đều được định nghĩa nhờ vào giao diện
IWindow Giao diện này rất đơn giản, nó chỉ cần implement cho
phương thức getWindowInfo() Phương thức này trả về lớp
WindowInfo để xác định kích thước của cửa sổ, tiêu đề, và các hằng
chỉ định cửa sổ là modal hay không, có thể resize, và có hay không có
Pallette (rất hữu dụng cho việc hiển thị thông tin, nhóm điều khiển, và
các công cụ mẫu)
Trang 23libCorePlugin (định nghĩa cho WindowInfo được sử dụng để tạo các
dạng cửa sổ JinternalFrame)
Một vài gói trong folder Extensions:
Gói gốc com.iver.cit.gvsig, trong đó ta có thể tìm thấy các entry
points tương ứng với các menu, button…
Gói com.iver.cig.gvsig.project bao gồm các lớp quan trọng nhất là
Project.java và ProjectFactory.java Lớp Project.java là lớp quản
lý gvSIG project và chứa phương thức tĩnh createFromXML() để đọc tập tin gvp (tập tin project của gvSIG) Tuy nhiên, để lưu một project gvp thì ta phải sử dụng phương thức writeProject trong gói
ProjectExtension và phải gọi phương thức getXMLEntity() từ lớp
Project
Bên trong gói project là gói com.iver.cit.gvsig.project.documents
có 2 lớp: ProjectDocument và ProjectDocumentFactory Lớp
ProjectDocument là lớp mà hầu hết các document còn lại phải kế
thừa từ nó Trong khi đó, lớp ProjectDocumentFactory sẽ đảm
trách việc tạo documents và quản lý các documents tiềm năng trong tương lai khi mở rộng
Gói com.iver.cit.gvsig.gui.layout chứa lớp Layout đảm trách về
việc chuẩn bị các bản đồ cho in ấn cũng như các lớp bên trong gói
Fframes đầy đủ các thành phần thể hiện trong layout (như khung
nhìn - views, chú dẫn - legends, thanh chỉ Bắc - north arrows, các kí
tự - text, các đối tượng đồ họa - graphics, thanh tỉ lệ - scale,…)
Fframes là một khung chữ nhật và mỗi lớp được thừa kế từ Fframes sẽ đảm nhiệm việc vẽ bên trong khung chữ nhật đó Với
giải pháp này, chúng ta có thể thêm các phần tử vào trong Layout
Lớp com.iver.cit.gvsig.ProjectExtension đảm nhiệm các hoạt động
tạo mới project, loading project có sẵn, lưu project
Các gói còn lại có liên quan đến layout, view và table Và ngoài ra các gói còn hỗ trợ các exceptions cũng như giao diện người sử dụng (lớp GUI) để thêm lớp dữ liệu
- Khung nhìn View:
Trang 24Báo cáo thực tập tốt nghiệp GVHD: Th.S Phan Hiền Vũ
chất là một document ProjectView, mà trong đó sẽ có một MapContext được liên kết với Mapcontrol và một MapContext khác sẽ đối ứng với lớp MapOverview
ToC sẽ là cách thể hiện khác của MapContext mà được liên kết với Mapcontrol
Map Control:
- Trong các extensions việc đầu tiên là đọc đối tượng View và từ đó lấy MapControl và MapContext tương ứng Khi đó, với MapContext lấy được, chúng ta có thể lấy được danh sách các lớp dữ liệu (Flayers), khi đó, ta có thể xác định lớp dữ liệu cần thiết Cụ thể:
com iver andami ui mdiManager IWindow view =
PluginServices getMDIManager () getActiveWindow ();
if (!( view instanceof View ))
return;
View vista =( View ) view ;
IProjectView model = vista getModel ();
MapContext mapa = model getMapContext ();
MapControl mapCtrl = vista getMapControl ();
logger debug ("Comand : " s );
if s equals ("FULL") ) {
try
// mapa.beginAtomicEvent();
mapa getViewPort () setExtent ( mapa getLayers () getFullExtent ());
- Phần code này từ lớp com.iver.cit.gvsig.ViewControls Nó sử dụng
PluginServices.getActiveWindow() để lấy cửa sổ đang được active Và
nếu cửa sổ này là một View, nó sẽ lấy MapContext và phóng khung nhìn đến tất cả các lớp:
mapa getViewPort () setExtent ( mapa getLayers () getFullExtent ());
- Xét một vài lớp quan trọng sau:
Lớp ViewControls: bao gồm các phương thức: hiển thị toàn bộ lớp (full
extent), di chuyển (panning), cấu hình vị trí bản đồ (configure locator map), phóng to (zoom in), thu nhỏ (zoom out), đo khoảng cách
(meassure), thiết lập bật/tắt lớp dữ liệu (set layers as visible/not visible), kích hoạt và không kích hoạt (active, not active), lưu thành tập tin ảnh (save to raster), thay đổi tỉ lệ (change scale)
Lớp ViewSelectionControls: hỗ trợ chọn điểm, chọn hình chữ nhật và
chọn theo đa giác, chọn theo lớp dữ liệu và đảo chọn dữ liệu
Lớp Export: kết xuất sang ảnh những thông tin trên khung nhìn.
Trang 25Lớp này phức tạp hơn mô tả vì nó phải thực hiện các thao tác: hiển thị hộp thoại từ các pluggings bên ngoài Sau đó, sử dụng pluggings khác để thêm dữ liệu đủ thứ loại như spatial databases, WMS, WFS,… Trong lớp này, chỉ có các đoạn lệnh thêm các lớp dữ liệu tập tin (như shp,
raster, dxf, dgn, etc) Khai thác lớp này cần chú ý đến phép chiếu liên quan đến dữ liệu và view
Lớp InfoToolExtension: Cửa sổ hiển thị các thông tin Lớp này là phần
duy nhất tự tìm các phương thức riêng của nóBên trong các khung nhìn, các MapOverview và MapControl có những mốiliên hệ chặt chẽ và khắn khít nhau khi thể hiện bản đồ
- Đối tượng MapOverview là lớp con của MapControl, với đặc tính chuyên biệt là liên kết đến một Mapcontrol trong một View nào đó Nó thường sử dụng để định vị, hiển thị vài vị trí của các lớp dữ liệu bằng một hình chữ nhật để ánh xạ với vị trí MapControl đang hiển thị
- Đối tượng MapOverview là một lắng nghe (listener) đến đối tượng MapControl, để mọi thay đổi trong khu vực hiển thị của MapControl sẽ được cập nhật bên MapOverview tương ứng
- Đoạn code “gắn” MapOverView vào MapControl:
public void setModel ( MapContext model ) {
this.setMapContext ( model );
model setProjection ( m_MapAssoc getMapContext () getProjection ());
m_MapAssoc getMapContext () getViewPort () addViewPortListener (this);
getMapContext () getViewPort () addViewPortListener (this);
Table of Content (T.O.C.)
- Đối tượng ToC có thể được xem như cách thể hiện khác để hiển thị đối tượng MapContext theo người sử dụng Trong ToC, chúng ta có thể thấy
Trang 26Báo cáo thực tập tốt nghiệp GVHD: Th.S Phan Hiền Vũ
Được kích hoạt hay không
Chú dẫn sẽ được applied vào mỗi lớp dữ liệu
Các thông tin khác
- Bảng dữ liệu – Tables:
Bảng trong trong gvSIG có 2 dạng:
Dạng bảng thuộc tính của một lớp không gian nào đó trong một View
Dạng chỉ đơn thuần là bảng dữ liệu được thêm vào project
Đối với bảng thuộc tính từ lớp dữ liệu không gian, nó sẽ bao gồm các thuộc tính kèm theo khác và các listeners của các sự kiện để các hành vi trên lớp dữ liệu sẽ tác động qua lại đối với bảng Ví dụ khi xóa hay khi cập nhật thì dữ liệu không gian và bảng dữ liệu thuộc tính sẽ có mối liên
hệ với nhau để dữ liệu được toàn vẹn
Lớp thể hiện document Table là ProjectTable IEditableSource là nơi
dữ liệu được nắm giữ thật sự (các giá trị của từng dòng) Các thông tin khác được sử dụng để quản lý các lớp liên quan đến table, các field…
Thông thường, chúng ta sẽ làm việc với mô hình IeditableSource khi
chúng ta muốn làm việc với dữ liệu thô
Để thêm các chức năng cho table window, ta xem xét lớp
com.iver.cit.gvsig.project.documents.table.gui.Table, tổng quan của nó
gồm:
Các listeners liên quan để đáp trả các sự kiện từ mouse và keyboard (như TableKeyListener, MouseRow, MouseHandler)
Trả lời các sự kiện selection events (là TableSelectionListener)
Có các phương thức để editing (cho cột, dòng và ô dữ liệu)
5 Phần mềm Postgres:
1.2 Giới thiệu sơ lược về Postgres:
- Postgres là hệ quản trị cơ sở dữ liệuquan hệ và đối tượng được khoa điện toán của đại học California tại Berkeley phát triển
- PostgresSQL là một chương trình mã nguồn mở xây dựng trên mã nguồn banđầu của đại học Berkeley Nó theo chuẩn SQL99 và có nhiều đặc điểm hiện đại:
Câu truy vấn phức hợp (complex query)
Khóa ngoại (foreign key)
Thủ tục sự kiện (trigger)
Các khung nhìn (view)
Tính toàn vẹn của các giao dịch (integrity transactions)
Việc kiểm tra truy cập đồng thời đa phiên bản (multiversion
Trang 27- PostgreSQL cũng là hệ quản trị cơ sở dữ liệu hỗ trợ mạnh trong việc lưu trữ
dữ liệu không gian PostgreSQL kết hợp với module Postgis cho phép người dùng lưu trữ các lớp dữ liệu không gian Có thể sử dụng PostgreSQL, Postgiskết hợp với các phần mềm GIS hỗ trợ hiển thị, truy vấn, thống kê hoặc xử lý
dữ liệu không gian