BẢNG KÝ HIỆU CÁC THUẬT NGỮ VÀ CHỮ VIẾT TẮT API Application Programming Interface Giao diện lập trình ứng dụng AJAX Asynchronous JavaScript and XML Công nghệ phát triển ứng dụng web
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGÔ VĂN THỨ
ỨNG DỤNG WEBGIS TRONG QUẢN LÝ MẠNG LƯỚI TRƯỜNG HỌC TRÊN ĐỊA BÀN TỈNH NINH BÌNH
LUẬN VĂN THẠC SĨ
HÀ NỘI - 2011
Trang 2MỤC LỤC
LỜI CẢM ƠN ii
LỜI CAM ĐOAN iii
DANH SÁCH HÌNH VẼ viii
DANH SÁCH BẢNG BIỂU ix
BẢNG KÝ HIỆU CÁC THUẬT NGỮ VÀ CHỮ VIẾT TẮT x
MỞ ĐẦU………1
CHƯƠNG 1: HỆ THỐNG THÔNG TIN ĐỊA LÝ PHÂN TÁN 3
1.1 Các vấn đề cơ bản về hệ thống thông tin địa lý 3
1.1.1 Tổng quan về hệ thống thông tin địa lý 3
1.1.2 Mô hình công nghệ của hệ thống thông tin địa lý 3
1.1.3 Một số lĩnh vực khoa học liên quan tới hệ thống thông tin địa lý 4
1.1.4 Các thành phần của một hệ thống thông tin địa lý 5
1.1.4.1 Con người 6
1.1.4.2 Phần cứng 6
1.1.4.3 Phần mềm 7
1.1.4.4 Dữ liệu 8
1.1.4.5 Phương pháp phân tích 8
1.1.5 Các ứng dụng của hệ thống thông tin địa lý 8
1.2 Dữ liệu hệ thống thông tin địa lý 10
1.2.1 Các dạng dữ liệu của hệ thống thông tin địa lý 10
1.2.2 Các mô hình dữ liệu được dùng 11
1.2.3 Mô hình dữ liệu đồ họa 11
1.2.3.1 Mô hình dữ liệu Raster 13
1.2.3.2 Mô hình dữ liệu Vectơ 14
1.2.3.3 So sánh giữa mô hình dữ liệu Raster và Vectơ 17
1.3 Giới thiệu về hệ thống thông tin địa lý phân tán 17
1.4 Mô hình xử lý và kiến trúc triển khai WebGIS 18
1.4.1 Kiến trúc WebGIS và các bước xử lý 18
1.4.2 Các kiến trúc triển khai 20
1.4.2.1 Chiến thuật hướng máy chủ 21
1.4.2.2 Chiến thuật hướng máy khách 22
1.4.2.3 Kết hợp hai chiến thuật 23
1.5 Các chuẩn trao đổi dữ liệu WebGIS 23
1.5.1 Việc trao đổi dữ liệu của hệ thống WebGIS 23
1.5.2 Giải pháp cho vấn đề chia sẻ dữ liệu 24
1.5.2.1 Chuẩn chia sẻ dữ liệu WMS 24
1.5.2.2 Chuẩn chia sẻ dữ liệu WFS 24
CHƯƠNG 2: BẢN ĐỒ SỐ GOOGLE MAP VÀ ỨNG DỤNG 25
2.1 Bản đồ số Google Map 25
Trang 32.1.1 Tổng quan về bản đồ số Google Map 25
2.1.2 Tổng quan về API bản đồ Google 27
2.2 Các API bản đồ Google sử dụng cho ngôn ngữ Javascript 28
2.2.1 Tổng quan về API bản đồ của Google cho javascript 28
2.2.1.1 Hỗ trợ mã hóa ví trí 28
2.2.1.2 Phát triển ứng dụng cho thiết bị di động 29
2.2.1.3 Địa phương hóa ứng dụng 29
2.2.1.4 Thư viện trong Google Map API 30
2.2.1.5 Tải API qua giao thức an toàn https 30
2.2.1.6 Tải Javascript API không đồng bộ 30
2.2.1.7 Việc cập nhật Google Map API 31
2.2.1.8 Phân nhóm Google Map API 31
2.2.2 Các đối tượng bản đồ cơ bản 31
2.2.3 Các API hướng sự kiện 33
2.2.3.1 Tổng quan về sự kiện bản đồ 33
2.2.3.2 Việc phối hợp các sự kiện 34
2.2.3.3 Truy cập thời gian thực trong các sự kiện hướng người dùng 35
2.2.3.4 Sử dụng trạng thái dừng đối với một sự kiện 35
2.2.3.5 Cài đặt và lấy thông số của sự kiện 35
2.2.3.6 Sử dụng các sự kiện cơ bản trong mô hình DOM 36
2.2.4 Các API điều khiển 36
2.2.4.1 Tổng quan về API điều khiển 36
2.2.4.2 Đối tượng điều khiển mặc định 37
2.2.4.3 Thêm đối tượng điều khiển vào ứng dụng bản đồ 38
2.2.4.4 Các tham số tùy chọn cho các đối tượng điều khiển 38
2.2.4.5 Các phương thức chỉnh sửa các đối tượng điều khiển 40
2.2.4.6 Vị trí của các đối tượng điều khiển 40
2.2.4.7 Tự tạo các đối tượng điều khiển 42
2.2.4.8 Thêm thông số trạng thái cho đối tượng điều khiển 43
2.2.5 Các tầng bổ sung cho bản đồ 43
2.2.5.1 Tổng quan 43
2.2.5.2 Thêm đối tượng chồng lặp bản đồ 44
2.2.5.3 Gỡ bỏ đối tượng chồng lặp bản đồ 44
2.2.5.4 Đối tượng đánh dấu điểm 44
2.2.5.5 Biểu tượng 45
2.2.5.6 Đối tượng đường chồng lặp 46
2.2.5.7 Đối tượng khoanh vùng chồng lặp bản đồ 47
2.2.5.8 Vùng tròn và vùng vuông 48
2.2.5.9 Đối tượng ảnh chồng lặp 48
2.2.5.10 Cửa sổ thông tin 48
Trang 42.2.5.11 Tầng chồng lặp bản đồ 49
2.2.5.12 Thư viện chồng lặp bản đồ Panoramio 50
2.2.5.13 Tự tạo tầng chồng lặp bản đồ 51
CHƯƠNG 3: ỨNG DỤNG WEBGIS ĐỂ XÂY DỰNG GIẢI PHÁP QUẢN LÝ MẠNG LƯỚI TRƯỜNG HỌC TRÊN ĐỊA BÀN TỈNH NINH BÌNH 52
3.1 Tình hình ứng dụng công nghệ thông tin trong ngành Giáo dục và Đào tạo tỉnh Ninh Bình 52
3.2 Bài toán quản lý mạng lưới trường học tỉnh Ninh Bình 54
3.2.1 Khảo sát hiện trạng 54
3.2.2 Các yêu cầu của bài toán 54
3.2.2.1 Nội dung bài toán 54
3.2.2.2 Yêu cầu về xây dựng, cập nhật bản đồ mạng lưới trường học 55
3.2.2.3 Yêu cầu về cập nhật thông tin chi tiết cho mỗi điểm trường 55
3.2.2.4 Yêu cầu về tìm kiếm thông tin và cung cấp thông tin cho người dùng theo từng nhóm điều kiện đầu vào cụ thể 55
3.2.2.5 Yêu cầu về phân quyền, sử dụng và quản trị hệ thống 56
3.3 Giải pháp công nghệ 56
3.4 Xây dựng ứng dụng 57
3.4.1 Kiến trúc hệ thống 57
3.4.1.1 Cổng thông tin điện tử Giáo dục Ninh Bình 57
3.4.1.2 Kiến trúc của hệ quản trị nội dung Joomla 58
3.4.1.3 Khung làm việc Joomla 59
3.4.1.4 Mô hình phát triển phần mềm MVC 60
3.4.1.5 Ứng dụng quản lý mạng lưới trường học 61
3.4.2 Đặc tả Use-Case của bài toán 63
3.4.2.1 Tác nhân 63
3.4.2.2 Use-case 64
3.4.3 Xây dựng mã nguồn cho ứng dụng 65
3.4.3.1 Cơ sở dữ liệu 65
3.4.3.2 Kiến trúc mã nguồn 66
3.5 Cài đặt và chạy thử ứng dụng 68
3.5.1 Cài đặt ứng dụng 69
3.5.2 Cập nhật dữ liệu 69
3.5.2.1 Bảng công cụ quản trị ứng dụng 70
3.5.2.2 Cấu hình ứng dụng 70
3.5.2.3 Quản lý bản đồ 71
3.5.2.4 Quản lý điểm trường 72
3.5.2.5 Quản lý loại hình trường 73
3.6 Kết quả thực nghiệm 74
3.6.1 Duyệt bản đồ mạng lưới trường học 75
Trang 53.6.2 Duyệt một điểm trường 76
KẾT LUẬN……… 78
TÀI LIỆU THAM KHẢO 80
PHỤ LỤC: MÔ TẢ CƠ SỞ DỮ LIỆU ỨNG DỤNG 82
Trang 6DANH SÁCH HÌNH VẼ
Hình 1.1: Mô hình công nghệ hệ thống thông tin địa lý 3
Hình 1.2: Các thành phần của hệ thống thông tin địa lý 5
Hình 1.3: Các dạng dữ liệu GIS 11
Hình 1.4: Ví dụ thế giới thực 12
Hình 1.5: Mô hình Raster biểu diễn thế giới thực 12
Hình 1.6: Mô hình Vectơ biểu diễn thế giới thực 12
Hình 1.7: Mô hình dữ liệu Raster 13
Hình 1.8: Thể hiện vật thể dạng điểm đường vùng theo tọa độ x, y 14
Hình 1.9: Mô hình dữ liệu dòng chảy 15
Hình 1.10: Mô hình dữ liệu tôpô 15
Hình 1.11: Mô hình mạng các tam giác không đều 16
Hình 1.12: Kiến trúc WebGIS cở bản 18
Hình 1.13: Các dạng yêu cầu từ phía máy khách 19
Hình 1.14: Dữ liệu GIS trong kiến trúc WebGIS đơn thể 23
Hình 1.15: Chia sẻ dữ liệu GIS giữa các nhóm ứng dụng 24
Hình 2.1: Giao diện web cơ bản của Google Map 26
Hình 2.2: Hình vẽ xác định các vị trí trên bản đồ Google Map 41
Hình 3.1: Bản đồ tỉnh Ninh Bình 52
Hình 3.2: Trang chủ cổng thông tin điện tử Giáo dục và Đào tạo Ninh Bình 58
Hình 3.3: Kiến trúc cơ bản của khung làm việc Joomla 60
Hình 3.4: Mô hình MVC đơn giản 61
Hình 3.5: Mô hình Joomla MVC 62
Hình 3.6: Mô hình thiết kế ứng dụng bổ sung cho Joomla theo mô hình MVC 62
Hình 3.7: Mô hình thiết kế cơ sở dữ liệu ứng dụng 65
Hình 3.8: Bảng công cụ quản trị ứng dụng 70
Hình 3.9: Giao diện chức năng quản lý cấu hình ứng dụng 71
Hình 3.10: Giao diện chức năng quản lý bản đồ của ứng dụng 72
Hình 3.11: Giao diện chức năng quản lý điểm trường 73
Hình 3.12: Giao diện quản lý loại hình trường 74
Hình 3.13: Giao diện người dùng chính của ứng dụng 75
Hình 3.14: Hỗ trợ tìm kiếm điểm trường 76
Hình 3.15: Xem bản đồ toàn cảnh 76
Hình 3.16: Giao diện duyệt một điểm trường 76
Hình 3.17: Giao diện tìm đường đi tới điểm trường 76
Hình 3.18: Giao diện kết quả tìm đường đi đến điểm trường 77
Trang 7DANH SÁCH BẢNG BIỂU
Bảng 1.1: So sánh mô hình dữ liệu Raster và Vectơ 17 Bảng 2.1: Cài đặt mặc định cho các đối tượng điểu khiển trong Google Map 38
Trang 8BẢNG KÝ HIỆU CÁC THUẬT NGỮ VÀ CHỮ VIẾT TẮT
API Application Programming Interface Giao diện lập trình ứng dụng
AJAX Asynchronous JavaScript and XML Công nghệ phát triển ứng dụng web dựa trên sự kết hợp không đồng bộ hai ngôn
ngữ JavaScript và XML
Joomla Joomla Hệ quản trị nội dung mã nguồn mở xây dựng trên PHP và MySQL khung làm
việc
Joomla khung làm việc Joomla
Bộ thư viện và khung quy trình chuẩn để xây dựng các thành phần ứng dụng bổ sung cho hệ quản trị nội dung Joomla
GIS Geographic Information System Hệ thống thông tin địa lý
Các giao diện lập trình ứng dụng được cung cấp để xây dựng các ứng dụng bản đồ trực tuyến dựa trên nền bản đồ trực tuyến của Google
HTML5 The latest version of HTML and XHTML Phiên bản mới nhất của ngôn ngữ HTML và XHTML Javascript Javascript
Một ngôn ngữ lập trình kịch bản dựa trên đối tượng sử dụng trong lập trình phát triển các ứng dụng web, các kịch bản này được thực thi tại trình duyệt của máy khách
MCV Model View Controller Mô hình kiến trúc phần mềm tách biệt các nguyên tắc nghiệp vụ và giao diện người
dùng Model Model Quy trình nghiệp vụ trong mô hình lập trình MVC (nghĩa sử dụng trong luận văn) URL Uniform Resource Locator Địa chỉ tham chiếu tài nguyên trên mạng Internet
trình MVC (nghĩa sử dụng trong luận văn) W3C World Wide Web Consortium Chuẩn xây dựng ứng dụng Web
Information System
Hệ thống thông tin địa
lý phân tán trên môi trường mạng XML Extensible Markup Language Ngôn ngữ đánh dấu mở rộng
Trang 9MỞ ĐẦU
Trong những năm gần đây, GIS nói chung và WebGIS nói riêng là công
cụ trợ giúp quyết định trong nhiều hoạt động kinh tế, xã hội, quốc phòng an ninh của nhiều quốc gia trên thế giới GIS có khả năng trợ giúp các cơ quan chính phủ, nhà quản lý, doanh nghiệp, cá nhân, đánh giá được hiện trạng của những quá trình, các thực thể tự nhiên, kinh tế, xã hội thông qua những chức năng thu thập, quản lý, truy vấn, phân tích và tích hợp các thông tin được gắn với một nền hình học (bản đồ) nhất quán trên cơ sở toạ độ của các dữ liệu đầu vào
Quản lý và điều hành hệ thống giáo dục trong một tỉnh là một thách thức lớn, việc quản lý giáo dục không chỉ tập trung vào công tác giảng dạy và học tập
mà việc tích hợp dữ liệu giáo dục để hỗ trợ quyết định, hoạch định chính sách và xây dựng chiếu lược phát triển giáo dục phù hợp với điều kiện thực tế của địa phương cũng hết sức quan trọng Việc ứng dụng GIS đóng vai trò quan trọng trong công tác hoạch định chiến lược, lập kế hoạch phát triển và quản lý, đảm bảo yêu cầu cung cấp điều kiện giáo dục tốt nhất cho mọi người, đồng thời sử dụng các nguồn lực như trường học, cơ sở vật chất, thiết bị dạy học, đội ngũ cán
bộ giáo viên một cách hiệu quả, tiết kiệm ngân sách nhà nước
Ngành giáo dục có hệ thống cơ sở hạ tầng và nguồn nhân lực lớn, phân bổ rộng trên tất cả các khu vực địa lý Do vậy, việc xây dựng bản đồ quản lý mạng lưới trường học bằng hệ thống thông tin địa lý dựa trên nền web là một giải pháp
có tính thực tiễn, đáp ứng yêu cầu đẩy mạnh ứng dụng công nghệ thông tin trong giáo dục, nâng cao hiệu quả quản lý, tiến tới nâng cao chất lượng giáo dục toàn diện [6]
Từ xu thế phát triển mạnh của công nghệ thông tin và hiện trạng ứng dụng công nghệ thông tin trong giáo dục, việc ứng dụng WebGIS để quản lý mạng lưới trường học là tất yếu Phạm vi nghiên cứu cũng như tầm ứng dụng của GIS nói chung rất lớn, trong giới hạn luận văn này, tác giả sẽ trình bày các vấn đề về việc sử dụng WebGIS trên nền bản đồ trực tuyến của Google để xây dựng giải pháp quản lý mạng lưới trường học các cấp trên địa bàn tỉnh Ninh Bình
Cấu trúc của luận văn bao gồm các phần như sau:
Phần mở đầu: Nội dung phần mở đầu chỉ ra vai trò, tầm quan trọng của
công nghệ GIS và WebGIS đối với các lĩnh vực trong xã hội; sự cần thiết, cơ sở khoa học và thực tiễn của việc sử dụng WebGIS để xây dựng giải pháp quản lý mạng lưới trường học các cấp trên địa bàn tỉnh Ninh Bình
Trang 10Chương 1: Hệ thống thông tin địa lý phân tán: Nội dung Chương 1
trình bày tổng quan về hệ thống thông tin địa lý và hệ thống thông tin địa lý phân tán trên môi trường mạng, các khái niệm liên quan, các nguyên nguyên lý
cơ bản hỗ trợ cho việc triển khai các ứng dụng WebGIS
Chương 2: Bản đồ số Google Map và ứng dụng: Nội dung Chương 2
trình bày các vấn đề về bản đồ số trực tuyến Google Map và công nghệ Goole Map API hỗ trợ phát triển các ứng dụng WebGIS dựa trên nền bản đồ số trực tuyến của Google
Chương 3: Ứng dụng WebGIS để xây dựng giải pháp quản lý mạng lưới trường học trên địa bàn tỉnh Ninh Bình: Nội dung Chương 3 trình bày về
các giải pháp ứng dụng WebGIS trên nền bản đồ trực tuyến của Google để xây dựng phần mềm quản lý mạng lưới trường học trên địa bàn tỉnh Ninh Bình Cài đặt và chạy thử ứng dụng trên môi trường mạng để đánh giá kết quả ban đầu của
đề tài
Phần kết luận: Nội dung phần này tổng kết, đánh giá về luận văn cũng
như phần mềm thực nghiệm và đưa ra một số hướng phát triển
Trang 11CHƯƠNG 1: HỆ THỐNG THÔNG TIN ĐỊA LÝ PHÂN TÁN
1.1 Các vấn đề cơ bản về hệ thống thông tin địa lý
1.1.1 Tổng quan về hệ thống thông tin địa lý
Hệ thống thông tin địa lý (GIS) là một nhánh của công nghệ thông tin, được hình thành vào những năm 1960 và phát triển rất rộng rãi trong 10 năm trở lại đây GIS ngày nay là công cụ trợ giúp quyết định trong nhiều hoạt động kinh
tế, xã hội, quốc phòng, an ninh của nhiều quốc gia trên thế giới GIS có khả năng trợ giúp các cơ quan chính phủ, các nhà quản lý, các doanh nghiệp, các cá nhân đánh giá được hiện trạng của các quá trình, các thực thể tự nhiên, kinh tế ,
xã hội thông qua các chức năng thu thập, quản lý, truy vấn, phân tích và tích hợp các thông tin được gắn với một nền hình học (bản đồ) nhất quán trên cơ sở tọa
độ của các dữ liệu đầu vào [20]
Từ những năm 1980 đến nay, đã có rất nhiều cách định nghĩa được đưa
ra, tuy nhiên không có định nghĩa nào khái quát đầy đủ về GIS vì phần lớn chúng đều được xây dựng trên khía cạnh ứng dụng cụ thể trong từng lĩnh vực Khi xây dựng một hệ thống GIS, chúng ta cần đưa ra quyết định xem hệ thống GIS sẽ được xây dựng theo mô hình ứng dụng cụ thể nào, lộ trình và phương thức tổ chức thực hiện ra sao, … Đây là cơ sở dữ liệu làm căn cứu để đưa ra quyết định về hệ thống GIS dự kiến xây dựng sẽ phải đảm đương các chức năng trợ giúp quyết định gì, nội dung, cấu trúc các thành phần còn lại của hệ thống cũng như dự toán nguồn tài chính cần đầu tư cho việc hình thành và phát triển
hệ thống GIS Với một xã hội có sự tham gia của người dân và quá trình quản lý thì sự đóng góp tri thức từ phía cộng đồng đang ngày càng trở nên quan trọng và
có vai trò không thể thiếu, do vậy khi đưa ra các quyết định liên quan tới việc xây dụng một hệ thống GIS, chúng ta cần trả lời câu hỏi quan trọng hàng đầu đó
là hệ thống xây dựng cho đối tượng người sử dụng nào, và các yêu cầu nào của người sử dụng cần có trong hệ thống
1.1.2 Mô hình công nghệ của hệ thống thông tin địa lý
Một cách khái quát, có thể hiểu một hệ thống GIS như một quá trình sau:
Hình 1.1: Mô hình công nghệ hệ thống thông tin địa lý
Trang 12- Dữ liệu vào: Dữ liệu được nhập từ các nguồn khác nhau như chuyển đổi giữa các cách biểu diễn dữ liệu, máy quét, hình ảnh từ vệ tinh, ảnh chụp, …
- Quản lý dữ liệu: Sau khi dữ liệu được thu thập và tổng hợp, GIS cần cung cấp các thiết bị có thể lưu và bảo trì dữ liệu nhằm đảm bảo các yêu cầu về bảo mật số liệu, tích hợp số liệu, lọc và đánh giá số liệu, khả năng duy trì GIS lưu thông tin thế giới thực thành các tầng dữ liệu riêng biệt, các tầng này đặt trong cùng một hệ trục toạ độ và chúng có khả năng liên kết với nhau
- Xử lý dữ liệu: Các thao tác xử lý dữ liệu được thực hiện để tạo ra thông tin Nó giúp cho người sử dụng quyết định cần làm tiếp công việc gì Kết quả của xử lý dữ liệu là tạo ra các ảnh, báo cáo và bản đồ, …
- Phân tích và mô hình: Số liệu tổng hợp và chuyển đổi chỉ là một phần của GIS Những yêu cầu tiếp theo là khả năng giải mã và phân tích về mặt định tính và định lượng thông tin đã thu thập
- Dữ liệu ra: Một trong các phương diện công nghệ GIS là sự thay đổi của các phương pháp khác nhau trong đó thông tin có thể hiển thị khi nó được xử lý bằng GIS Các phương pháp truyền thống là bảng và đồ thị có thể cung cấp bằng các bản đồ và ảnh ba chiều
1.1.3 Một số lĩnh vực khoa học liên quan tới hệ thống thông tin địa lý
Theo cách tiếp cận truyền thống, GIS là một công cụ máy tính để lập bản
đồ và phân tích các sự vật, hiện tượng thực trên trái đất Công nghệ GIS kết hợp các thao tác cơ sở dữ liệu thông thường như cấu trúc hỏi đáp với các phép phân tích thống kê, phân tích không gian Những khả năng này phân biệt GIS với các
hệ thống thông tin khác và khiến cho GIS có phạm vi ứng dụng rộng trong nhiều lĩnh vực khác nhau như phân tích các sự kiện, dự đoán tác động và hoạch định chiến lược, … Việc áp dụng công nghệ thông tin trong lĩnh vực dữ liệu không gian đã tiến những bước dài, từ việc hỗ trợ lập bản đồ đến hệ thống thông tin địa
lý Cho đến nay, cùng với việc tích hợp các khái niệm của công nghệ thông tin như hướng đối tượng, Web 2.0, … GIS đang có bước chuyển từ cách tiếp cận hướng cơ sở dữ liệu sang cách tiếp cận hướng tri thức Các hệ thống GIS thường được xây dựng trên các tri thức của nhiều ngành khoa học khác nhau để tạo ra các ứng dụng phục vụ mục đích cụ thể, các ngành kho học liên quan bao gồm:
- Ngành địa lý: Là ngành liên quan mật thiết đến việc biểu diễn thế giới và
vị trí của đối tượng trong thế giới Đây là ngành có truyền thống lâu đời về phân tích không gian và cung cấp các kỹ thuật phân tích không gian khi nghiên cứu
Trang 13- Ngành bản đồ: Nguồn dữ liệu đầu vào chính của GIS là các bản đồ, ngành bản đồ có truyền thống lâu đời trong việc thiết kế bản đồ, do vậy nó cũng
là khuôn mẫu quan trọng trong việc tạo dư liệu đầu ra cho GIS
- Công nghệ viễn thám: Các ảnh vệ tinh và ảnh máy bay là nguồn dữ liệu địa lý quan trọng cho hệ GIS, viễn thám bao gồm cả kỹ thuật thu thập và xử lý
dữ liệu ở mọi vị trí trên trái đất, các dữ liệu đầu ra của hệ thống ảnh vệ tinh có thể được trộn với các lớp dữ liệu của GIS
- Ảnh máy bay: Khi chúng ta xây dựng bản đồ có tỷ lệ cao thì ảnh chụp từ máy bay là nguồn dữ liệu chính về bền mặt trái đất được sử dụng làm hệ thống
dữ liệu đầu vào
- Bản đồ địa hình: Cung cấp dữ liệu có chất lượng cao về vị trí, danh giới đất đai, trường học, nhà cửa, …
- Ngành thống kê: Các kỹ thuật thống kê được sử dụng để phân tích dữ liệu GIS Dữ liệu thống kê đặc biệt quan trọng trong việc xác định sự phát sinh các lỗi hoặc tính không chắc chắn trong số liệu của GIS
- Khoa học tính toán: Tự động thiết kế máy tính cung cấp kỹ thuật nhập, hiển thị, biểu diễn dữ liệu Đồ hoạ máy tính cung cấp công cụ để thể hiện, quản
lý các đối tượng đồ hoạ Quản trị cơ sở dữ liệu cho phép biểu diễn dữ liệu dưới dạng số, các thủ tục để thiết kế hệ thống, lưu trữ, truy cập, cập nhật, …
- Toán học: Các ngành hình học, lý thuyết đồ thị được sử dụng trong thiết
kế hệ thống GIS và phân tích dữ liệu không gian
1.1.4 Các thành phần của một hệ thống thông tin địa lý
Xét dưới góc độ hệ thống, một hệ thống GIS có thể được hiểu như một hệ thống gồm các thành phần: Con người, phần cứng, phần mềm, cơ sở dữ liệu, phương pháp phân tích [3]
Hình 1.2: Các thành phần của hệ thống thông tin địa lý
Trang 141.1.4.1 Con người
Con người là thành phần quan trọng nhất, là nhân tố thực hiện các thao tác điều hành sự hoạt động của hệ thống GIS, con người thực hiện nhiều vai trò khác nhau và tham gia vào nhiều khâu trong quá trình hình thành, vận hành hệ thống GIS, cụ thể:
- Người dùng GIS: Là những người sử dụng các phần mềm GIS để giải quyết các bài toán không gian theo mục đích cụ thể, họ thường là những người được đào tạo tốt về lĩnh vực GIS hay là các chuyên gia Bên cạnh đó, đối với các
hệ thống GIS phục vụ cộng đồng, điểm hình là các ứng dụng WebGIS, người sử dụng hệ thống ngoài các chuyên gia về GIS còn có những người dùng thông thường thực hiện mục đích truy cập thông tin, sử dụng dịch vụ do hệ thống GIS cung cấp nhằm đáp ứng yêu cầu công việc cụ thể nào đó của họ
- Người xây dựng bản đồ: Sử dụng các tầng bản đồ được lấy từ nhiều nguồn khác nhau, chỉnh sửa dữ liệu để tạo ra các bản đồ theo yêu cầu
- Người xuất bản: Sử dụng phần mềm GIS để kết xuất ra bản đồ dưới nhiều định dạng đầu ra khác nhau như dạng bản in trên giấy, dạng ảnh lưu trữ trên máy tính, định dạng để sử dụng cho các phần mềm chuyên ngành khác, …
- Người phân tích: Giải quyết các vấn đề như tìm kiếm, xác định vị trí, danh giới, tập hợp thông tin theo nhóm vấn đề, …
- Người xây dựng dữ liệu: Là những người chuyên nhập dữ liệu bản đồ bằng các phương thức khác nhau như vẽ, chuyển đổi hoặc nhập từ định dạng khác, truy cập cơ sở dữ liệu từ hệ thống lưu trữ khác, …
- Người quản trị cơ sở dữ liệu: Quản lý cơ sở dữ liệu của hệ thống GIS và đảm bảo hệ thống vận hành ổn định, đáp ứng được các yêu cầu của người dùng
- Người thiết kế cơ sở dữ liệu: Xây dựng các mô hình dữ liệu lôgic và vật
lý đáp ứng các yêu cầu dữ liệu sử dụng trong hệ thống
- Người phát triển hệ thống: Xây dựng hoặc cải tạo các phần mềm GIS để đáp ứng các nhu cầu cụ thể hoặc sử dụng các phần mềm GIS để xây dựng các ứng dụng, phần mềm trung gian thực hiện các nhiệm vụ liên quan tới công nghệ GIS, đáp ứng yêu cầu ban đầu đã đặt ra
1.1.4.2 Phần cứng
Bao gồm hệ thống máy tính như PC, Mini Computer, MainFrame, … Các thiết bị di động như điện thoại thông minh, thiết bị định vị toàn cầu; Các thiết bị mạng cần thiết khi triển khai hệ thống GIS trên môi trường mạng GIS cũng đòi
Trang 15hỏi các thiết bị ngoại vi đặc biệt cho việc nhập và xuất dữ liệu như máy số hoá, máy đo vẽ, máy quét, …
1.1.4.3 Phần mềm
Để xây dựng và triển khai một hệ thống GIS, chúng ta cần cài đặt hệ thống phần mềm GIS thực hiện các khâu khác nhau trong hệ thống Hiện nay, có rất nhiều phần mềm GIS đáp ứng yêu cầu xây dựng các hệ thống GIS, bao gồm
cả phần mềm thương mại và phần mềm miễn phí Các phần mềm chỉ cài đặt tại máy tính cá nhân hoặc hệ phần mềm phục vụ cho việc phát triển các ứng dụng phân tán trên mạng, các chức năng cơ bản thường có trong phần mềm GIS gồm:
- Nhập và kiểm tra dữ liệu: Bao gồm tất cả các khía cạnh về biến đổi dữ liệu đã ở dạng bản đồ, trong lĩnh vực quan sát vào một dạng số tương thích Ðây
là giai đoạn rất quan trọng cho việc xây dựng cơ sở dữ liệu địa lý
- Lưu trữ và quản lý cơ sở dữ liệu: Lưu trữ và quản lý cơ sở dữ liệu bao gồm phương pháp kết nối dữ liệu không gian và dữ liệu thuộc tính của các đối tượng địa lý Hai loại dữ liệu này được tổ chức và liên hệ qua các thao tác trên máy tính đảm bảo chúng có thể cung cấp tường minh cho người sử dụng hệ thống
- Xuất dữ liệu: Dữ liệu đưa ra là các báo cáo kết quả quá trình phân tích tới người sử dụng, có thể bao gồm các dạng bản đồ, bảng biểu, biểu đồ, lưu đồ,
… được thể hiện trên máy tính, máy in, máy vẽ, hoặc chuyển đổi sang một định dạng phù hợp để sử dụng trong các phần mềm khác,
- Biến đổi dữ liệu: Biến đổi dữ liệu gồm hai lớp điều hành nhằm mục đích khắc phục lỗi từ dữ liệu và cập nhật chúng Biến đổi dữ liệu có thể được thực hiện trên dữ liệu không gian và dữ liệu thuộc tính một cách tách biệt hoặc tổng hợp cả hai
- Tương tác với người dùng: Giao tiếp với người dùng là yếu tố quan trọng nhất của bất kỳ hệ thống thông tin nào Các giao diện người dùng ở một hệ thống tin được thiết kế phụ thuộc vào mục đích của ứng dụng đó
Các phần mềm GIS phổ biến hiện nay gồm:
- Phần mềm dùng cho lưu trữ, xử lý số liệu thông tin địa lý: ACR/INFO, SPAN,ERDAS-Imagine, ILWIS, MGE/MICROSTATION, IDRISIW, IDRISI, WINGIS, …
- Phần mềm dùng cho lưu trữ, xử lý và quản lý các thông tin địa lý: MAPPER, ATLASGIS, ARCVIEW, MAPINFO, …
Trang 16ER-1.1.4.4 Dữ liệu
Dữ liệu được sử dụng trong hệ thống GIS không chỉ là dữ liệu địa lý độc lập mà còn phải được thiết kế trong một cơ sở dữ liệu có cấu trúc Những thông tin địa lý sẽ bao gồm các dữ liệu về vị trí địa lý, dữ liệu thuộc tính, mối liên hệ không gian và thời gian của các thông tin Một cách tổng quát, người ta chia dữ liệu trong hệ thống GIS thành ba dạng:
- Dữ liệu không gian: Là những mô tả hình ảnh bản đồ được số hoá theo một khuôn dạng nhất định mà máy tính hiểu được, dữ liệu này cho ta biết kích thước vật lý và vị trí địa lý của các đối tượng trên bề mặt trái đất Hệ thống thông tin địa lý dùng cơ sở dữ liệu này để xuất ra các bản đồ trên màn hình hoặc
ra các thiết bị ngoại vi khác như máy in, máy vẽ Dữ liệu không gian được biểu diễn dưới dạng dữ liệu Vectơ hoặc dữ liệu Raster
- Dữ liệu thuộc tính: Được trình bày dưới dạng các ký tự hoặc số, hoặc ký hiệu để mô tả các thuộc tính của các thông tin thuộc về địa lý, cho ta biết thêm thông tin thuộc tính của đối tượng
- Dữ liệu thời gian: Cho biết thời gian gắn với dữ liệu không gian và dữ liệu thuộc tính Dữ liệu không gian và dữ liệu thuộc tính của một đối tượng có thể thay đổi theo thời gian
1.1.4.5 Phương pháp phân tích
Các phương pháp phân tích cấu trúc và nội dung dữ liệu, bao gồm quy trình, kiến thức chuyên gia, nơi tập hợp các quy định, quy phạm, tiêu chuẩn, định hướng, chủ trương ứng dụng của nhà quản lý, các kiến thức chuyên ngành
và các kiến thức về công nghệ thông tin
1.1.5 Các ứng dụng của hệ thống thông tin địa lý
Do đặc trưng về khả năng quản lý và lưu trữ dữ liệu không gian và thuộc tính của các đối tượng trên trái đất, GIS có rất nhiều ứng dụng trong phát triển kinh tế, xã hội, đảm bảo anh ninh, quốc phòng như quy hoạch đô thị, quản lý nhân lực, nông nghiệp, điều hành hệ thống công ích, lộ trình, nhân khẩu, bản đồ, giám sát vùng biển, cứu hoả, quản lý trường học, quản lý lây lan bệnh dịch, Trong phần lớn các lĩnh vực này, GIS đóng vai trò như là một công cụ hỗ trợ quyết định cho việc lập kế hoạch hoạt động
- Môi trường: Đã có nhiều ứng dụng phát triển trong những tổ chức quan
tâm đến môi trường Với mức đơn giản nhất, người dùng sử dụng GIS để đánh giá môi trường, ví dụ như vị trí và thuộc tính của cây rừng Ứng dụng GIS với mức phức tạp hơn là dùng khả năng phân tích của GIS để mô hình hóa các tiến
Trang 17trình xói mòn đất, sự lan truyền ô nhiễm trong môi trường khí hay nước, hoặc sự phản ứng của một lưu vực sông dưới sự ảnh hưởng của một trận mưa lớn Nếu những dữ liệu thu thập gắn liền với đối tượng vùng và ứng dụng sử dụng các chức năng phân tích phức tạp thì mô hình dữ liệu Raster có khuynh hướng
chiếm ưu thế
- Khí tượng thuỷ văn: Trong lĩnh vực này GIS được dùng như là một hệ
thống đáp ứng nhanh, phục vụ phòng chống thiên tai như lũ quét ở vùng hạ lưu, xác định tâm bão, dự đoán các dòng chảy, xác định mức độ ngập lụt, từ đó đưa
ra các biện pháp phòng chống kịp thời Vì những ứng dụng này mang tính phân
tích phức tạp nên mô hình dữ liệu không gian Raster chiếm ưu thế
- Nông nghiệp: Những ứng dụng đặc trưng gồm giám sát thu hoạch, quản
lý sử dụng đất, dự báo về hàng hoá, nghiên cứu về đất trồng, kế hoạch tưới tiêu,
kiểm tra nguồn nước, phòng chống dịch bệnh cho cây trồng, …
- Dịch vụ tài chính: GIS được sử dụng trong lĩnh vực dịch vụ tài chính tương tự như một ứng dụng đơn lẻ Nó đã từng được áp dụng cho việc xác định
vị trí những chi nhánh mới của ngân hàng Hiện nay, việc sử dụng GIS đang tăng lên trong lĩnh vực này, nó là một công cụ đánh giá rủi ro và mục đích bảo hiểm, xác định với độ chính xác cao hơn những khu vực có độ rủi ro lớn nhất hay thấp nhất Lĩnh vực này đòi hỏi những dữ liệu cơ sở khác nhau như hình thức vi phạm luật pháp, địa chất học, thời tiết và giá trị tài sản
- Y tế: Ngoại trừ những ứng dụng đánh gía, quản lý mà GIS thường được dùng, GIS còn có thể áp dụng tốt trong lĩnh vực y tế, ví dụ GIS chỉ ra được lộ trình nhanh nhất giữa vị trí hiện tại của xe cấp cứu và bệnh nhân cần cấp cứu, dựa trên cơ sở dữ liệu giao thông GIS cũng có thể được sử dụng như một công
cụ nghiên cứu dịch bệnh để phân tích nguyên nhân bộc phát và lây lan bệnh tật trong cộng đồng
- Chính quyền địa phương: Chính quyền địa phương là một trong những lĩnh vực ứng dụng rộng nhất của GIS, bởi vì đây là một tổ chức sử dụng dữ liệu không gian nhiều nhất Tất cả các cơ quan của chính quyền địa phương có thể có lợi từ GIS GIS có thể được sử dụng trong việc tìm kiếm và quản lý thửa đất, thay thế cho việc hồ sơ giấy tờ hiện hành Chính quyền địa phương cũng có thể
sử dụng GIS trong việc bảo dưỡng nhà cửa và đường giao thông GIS còn được
sử dụng trong các trung tâm điều khiển và quản lý các tình huống khẩn cấp
- Bán lẻ và phân phối: Các siêu thị vùng ngoại ô được xác định vị trí với
sự trợ giúp của GIS GIS thường lưu trữ những dữ liệu về kinh tế, xã hội của
Trang 18khách hàng trong một vùng nào đó Một vùng thích hợp cho việc xây dựng môt siêu thị có thể được tính toán bởi thời gian đi đến siêu thị, và mô hình hoá ảnh hưởng của những siêu thị cạnh tranh GIS cũng được dùng cho việc quản lý tài sản và tìm đường phân phối hàng ngắn nhất
- Giao thông: GIS có khả năng ứng dụng đáng kể trong lĩnh vực vận tải Việc lập kế hoạch và duy trì cơ sở hạ tầng giao thông rõ ràng là một ứng dụng thiết thực Gần đây có sự quan tâm đến một lĩnh vực mới là ứng dụng định vị trong vận tải hàng hải, và hải đồ điện tử, hoạt động chuyển phát nhanh, các loại hình đặc trưng này đòi hỏi sự hỗ trợ của GIS
- Các ngành điện, nước, gas, viễn thông: Những công ty trong lĩnh vực
này dùng GIS linh hoạt nhất, GIS được dùng để xây dựng những cơ sở dữ liệu, GIS thường là công nghệ chiến lược về công nghệ thông tin của các công ty trong lĩnh vự này Dữ liệu Vectơ thường được dùng trong các lĩnh vực này
Như vậy, một tổ chức dù có nhiệm vụ là lập kế hoạch và bảo dưỡng mạng lưới vận chuyển hay cung cấp các dịch vụ về nhân lực, hỗ trợ cho các chương trình an toàn công cộng và hỗ trợ trong các trường hợp khẩn cấp, hoặc bảo vệ môi trường, thì công nghệ GIS luôn đóng vai trò cốt yếu bằng cách giúp cho việc quản lý và sử dụng thông tin địa lý một cách hiệu quả nhằm đáp ứng các
yêu cầu hoạt động và mục đích chương trình của tổ chức đó
1.2 Dữ liệu hệ thống thông tin địa lý
1.2.1 Các dạng dữ liệu của hệ thống thông tin địa lý
Dữ liệu GIS được chia làm 3 dạng: Dữ liệu không gian, dữ liệu phi không gian (dữ liệu thuộc tính) và dữ liệu thời gian [5]
Trang 19- Dữ liệu phi không gian: Trả lời cho câu hỏi cái gì, như thế nào, thể hiện tính chất của đối tượng như chiều dài, rộng của con đường, độ cao của cây rừng, dân cư của thành phố, …Với dữ liệu phi không gian thì vị trí không quan trọng
- Dữ liệu thời gian: Trả lời cho câu hỏi tồn tại khi nào, trên thực tế các thông tin không gian và thông tin thuộc tính có thể biến đổi không phụ thuộc vào nhau tương đối theo thời gian
Ví dụ: Sự di chuyển của các cồn cát làm thay đổi vị trí của chúng nhưng vẫn giữ nguyên thuộc tính “cồn cát”; hoặc quá trình xói mòn đất làm thay đổi thuộc tính “độ cao” của quả đồi nhưng lại giữ nguyên vị trí tọa độ của nó
1.2.2 Các mô hình dữ liệu được dùng
Trong hệ thống thông tin địa lý, dữ liệu có mối quan hệ với nhau và đặt ra yêu cầu phải được lưu trữ như là một cơ sở dữ liệu thống nhất Dưới đây là các
mô hình dữ liệu được dùng để sắp xếp, lưu trữ dữ liệu bên trong hệ thống thông tin địa lý:
- Mô hình tổng quát;
- Mô hình dữ liệu cơ bản: Vectơ, Raster;
- Mô hình không gian;
1.2.3 Mô hình dữ liệu đồ họa
Trong các hệ thống GIS, phần dữ liệu đồ họa dùng để tạo lập các bản đồ đóng vai trò quan trọng, dữ liệu đồ họa thường mô tả thế giới thực và được chia
Trang 20làm 2 loại: dữ liệu raster và dữ liệu vectơ Xét ví dụ sau đây dùng dữ liệu dạng raster và vectơ để mô hình hóa thế giới thực: Một khu vực gồm có dòng sông chảy qua, bên cạnh bờ sông có một số cây cao, bên trái là một ngôi nhà
Hình 1.4: Ví dụ thế giới thực
- Biểu diễn dạng Raster:
Hình 1.5: Mô hình Raster biểu diễn thế giới thực
Xem ví dụ trên cho thấy, dòng sông được chia thành nhiều ô nhỏ nằm trên một lưới ô (R), còn cây dọc bên bờ cũng được biểu diển bằng ô (P), …
- Biểu diễn dạng Vectơ:
Hình 1.6: Mô hình Vectơ biểu diễn thế giới thực
Trang 21Các đối tượng được quy về điểm, đường nối các điểm và vùng (một tập các đường nối điểm đầu trùng điểm cuối)
1.2.3.1 Mô hình dữ liệu Raster
Hình 1.7: Mô hình dữ liệu Raster
Đây là hình thức đơn giản nhất để thể hiện dữ liệu không gian, mô hình raster bao gồm một hệ thống ô vuông hoặc ô chữ nhật được gọi là điểm ảnh Vị trí của mỗi điểm ảnh được xác định bởi số hàng và số cột, giá trị được gán vào điểm ảnh tượng trưng cho một thuộc tính mà nó thể hiện Hình ảnh được thể hiện càng rõ khi kích thước của điểm ảnh hay ô lưới càng nhỏ Thông số này được gọi là độ tương phản Xét ví dụ hai ảnh raster có cùng kích thước thì ảnh nào có độ tương phản càng cao (điểm ảnh càng nhỏ) thì kích thước càng tăng Giả sử 1 điểm ảnh thể hiện một diện tích 250m x 250m trên thực tế, để thể hiện một vùng 1km x 1km cần 4 điểm ảnh Trong khi đó nếu 1 điểm ảnh thể hiện diện tích 100m x 100m thì với diện tích 1km x 1km ta lại cần đến 10 điểm ảnh Một ảnh thông thường gồm hàng triệu điểm ảnh dẫn đến kích thước ảnh là khá lớn, tuy nhiên nhiều điểm ảnh gần nhau lại mang cùng giá trị, từ tính chất này, người ta đã sử dụng nhiều phương pháp nén khác nhau để nén ảnh raster
Xây dựng cơ sở dữ liệu Raster
- Mỗi điểm ảnh là một đối tượng, có vị trí theo hàng, cột tương ứng trên ảnh, giá trị của điểm ảnh cho biết điểm ảnh đó thuộc loại đối tượng nào, tính
chất của đối tượng đó được lưu trữ ở một cơ sở dữ liệu thuộc tính tương ứng
Trang 22- Cơ sở dữ liệu không gian raster có thể chứa hàng ngàn tầng dữ liệu không gian (layer), kiểu giá trị của điểm ảnh trong mỗi layer tùy theo việc mã hóa của người sử dụng, có thể là số nguyên, số thực hay ký tự chữ cái Giá trị số nguyên thường được dùng làm mã số để liên hệ với bảng dữ liệu khác hay làm chú giải để thể hiện bản đồ
- Để thể hiện một bề mặt liên tục, người ta sử dụng mô hình raster, các bề mặt liên tục này thường thể hiện bề mặt địa hình, mưa, áp suất không khí, nhiệt
độ, mật độ dân số,
1.2.3.2 Mô hình dữ liệu Vectơ
Trong mô hình dữ liệu vectơ, người ta giả sử rằng hệ thống tọa độ là chính xác Vật thể trên trái đất được thể hiện trên bản đồ dựa trên hệ tọa độ hai chiều (x, y), trên bản đồ vật thể có thể được thể hiện như là các điểm, đường, vùng Mô hình dữ liệu vectơ cũng tương tự như vậy, một vật thể dạng điểm được chứa dưới dạng cặp tọa độ (x, y); một vật thể dạng đường được chứa dưới dạng một chuỗi các cặp tọa độ (x, y); một vật thể dạng vùng được chứa dưới dạng một chuỗi cặp tọa độ (x, y) với cặp đầu tọa độ bằng với cặp tọa độ cuối, hay còn gọi là đa giác Trong Hình 1.16, các vật thể được số hóa bằng các cặp tọa độ (x, y); vị trí của điểm A được thể hiện bởi tọa độ (2, 2) và đường BCDE được thể hiện bởi chuỗi tọa độ (2, 8), (4, 6), (6, 6), (8,3); đa giác được thể hiện bởi một chuỗi tọa độ khác trong đó tọa độ đầu và cuối bằng nhau; trường hợp này đơn vị của các tọa độ là tùy ý, tuy nhiên trong GIS, vị trí thường được lưu trữ theo một hệ quy chiếu chuẩn như là hệ thống UTM, hệ thống quốc gia hay
hệ kinh tuyến, vĩ tuyến
Hình 1.8: Thể hiện vật thể dạng điểm đường vùng theo tọa độ x, y
Trang 23Trong mô hình dữ liệu vectơ, tùy theo cách lưu trữ dữ liệu, người ta chia
ra thành mô hình dòng chảy, mô hình topo và mô hình mạng các tam giác không đều
a Mô hình dữ liệu dòng chảy
Trong mô hình này tọa độ của các vật thể trên bản đồ được chuyển đổi và ghi nhận vào tập tin dữ liệu theo từng dòng danh sách các cặp tọa độ Như vậy các cặp tọa độ của cạnh chung của hai đa giác kề nhau phải được lập lại hai lần, mỗi lần cho một đa giác Cấu trúc của dạng mô hình này rất dễ hiểu, tuy nhiên mối liên hệ của các vật thể trong mô mô hình không được ghi nhận
Hình 1.9: Mô hình dữ liệu dòng chảy
Mô hình này không hiệu quả trong phân tích không gian nhưng lại có ích trong việc tái sản xuất bản đồ số mà không cần lưu trữ quan hệ không gian
b Mô hình dữ liệu Topo
Hình 1.10: Mô hình dữ liệu tôpô
Trang 24Mô hình Topo được sử dụng nhiều trong việc mã hóa các mối quan hệ không gian, đây là phương pháp toán học được dùng để định nghĩa các quan hệ không gian Mô hình này còn được gọi là mô hình Arc-Node, với Arc là một cung gồm chuỗi các điểm bắt đầu và kết thúc tại Node, Node là nút, điểm giao nhau của 2 hay nhiều cung, vùng là chuỗi khép kín của các arc thể hiện danh giới của vùng Topo được ghi trong 3 bảng dữ liệu cho 3 loại yếu tố không gian: vùng, điểm và cung (đường); dữ liệu về tọa độ được ghi trong bản thứ 4; dữ liệu thuộc tính thường được lưu trữ trong các bảng quan hệ, trong đó 1 trường chứa
ID của đối tượng không gian
c Mô hình mạng các tam giác không đều
Mô hình dữ liệu này thường được dùng để thể hiện dữ liệu về địa hình Trong mô hình này, bề mặt địa hình được thể hiện như là tập hợp các mặt tam giác liên kết với nhau trong đó mỗi đỉnh của tam giác được thể hiện bằng tọa độ (x, y, z) với z là giá trị độ cao của bề mặt Mỗi mặt của tam giác được gán cho một chữ cái và ba đỉnh của nó được gán bằng chữ số Bảng nút thể hiện danh sách đỉnh của từng tam giác, bảng cạnh thể hiện danh sách các tam giác nằm xung quanh của từng tam giác, bảng tọa độ X-Y thể hiện tọa độ của các đỉnh, bảng tọa độ z thể hiện giá trị z của các đỉnh đó Mô hình mạng các tam giác không đều rất thích hợp trong việc tính toán các thông số của địa hình như độ dốc, hướng dốc, …
Hình 1.11: Mô hình mạng các tam giác không đều
Trang 251.2.3.3 So sánh giữa mô hình dữ liệu Raster và Vectơ
2 Thể hiện liên hệ hình học do đó thích hợp cho các phân tích về hình học hay phân tích về mạng lưới
3.Thích hợp cho việc số hóa các bản đồ được vẽ bằng tay
Nhược điểm
1 Khả năng nén kém
2 Không thể hiện rõ liên hệ hình học
3 Thể hiện bản đồ không rõ nét nếu độ
tương phản thấp, nhưng nếu dùng độ
tương phản cao sẽ làm tăng kích thước
Bảng 1.1: So sánh mô hình dữ liệu Raster và Vectơ
1.3 Giới thiệu về hệ thống thông tin địa lý phân tán
WebGIS là hệ thống thông tin địa lý phân tán trên mạng máy tính để tích hợp, trao đổi các thông tin địa lý trên môi trường web [5] Trong cách thực hiện nhiệm vụ phân tích GIS, dịch vụ này gần giống như là kiến trúc khách chủ Quá trình xử lý thông tin địa lý được chia ra thành các nhiệm vụ ở phía máy chủ và máy khách, điều này cho phép người dùng có thể truy xuất, thao tác và nhận kết quả từ việc khai thác dữ liệu GIS từ trình duyệt web của họ mà không phải trả tiền cho phần mềm GIS Một trình ứng dụng phía máy khách tiêu biểu là trình duyệt web và phía máy chủ bao gồm một phần mềm máy chủ web đã được cài đặt bổ sung phần mềm cung cấp khả năng xử lý dữ liệu WebGIS Máy khách thường yêu cầu một ảnh bản đồ hay vài xử lý thông tin địa lý qua web đến máy chủ ở xa, máy chủ chuyển đổi yêu cầu thành mã nội bộ và gọi những chức năng
về GIS bằng cách chuyển tiếp yêu cầu tới phần mềm WebGIS, phần mềm này trả về kết quả, sau đó kết quả này được định dạng lại cho việc trình bày bởi trình duyệt hoặc một số hàm từ các cộng cụ hoặc Java applet cài đặt bổ sung trong trình duyệt Máy chủ sau đó trả về kết quả cho máy khách để hiển thị, hoặc gửi
dữ liệu và các công cụ phân tích đến máy khách để dùng ở phía máy khách Phần lớn sự chú ý gần đây là tập trung vào việc phát triển các chức năng GIS trên Internet WebGIS có tiềm năng lớn trong việc làm cho thông tin địa lý trở nên hữu dụng và sẵn sàng tới số lượng lớn người dùng trên toàn thế giới Thách
Trang 26thức lớn của WebGIS là việc tạo ra một hệ thống phần mềm không phụ thuộc vào môi trường và chạy trên chuẩn giao thức mạng TCP/IP, có nghĩa là khả năng WebGIS được chạy trên bất kì trình duyệt web của bất kì máy tính nào nối mạng Internet Đối với vấn đề này, các phần mềm GIS phải được thiết kế lại để trở thành ứng dụng WebGIS theo các kỹ thuật mạng Internet
1.4 Mô hình xử lý và kiến trúc triển khai WebGIS
1.4.1 Kiến trúc WebGIS và các bước xử lý
Kiến trúc xuất bản web của hệ thống tin dữ liệu không gian cũng gần giống như kiến trúc dành cho một hệ thông tin web cơ bản khác, ngoại trừ có ứng dụng GIS sử dụng các kỹ thuật khác Có nhiều dạng xuất bản web cho thông tin không gian, một kiến trúc tổng quát nhất được mô tả như sau:
Hình 1.12: Kiến trúc WebGIS cở bản
Quá trình làm việc với hệ thống web xử lý thông tin không gian được minh họa như trên hình vẽ trên, sau đây là quy trình xảy ra khi một người dùng
sử dụng trình duyệt web ở phía máy khách để truy cập hệ thống:
a Máy khách gửi yêu cầu của người sử dụng thông qua giao thức HTTP đến máy chủ web
Trang 27b Máy chủ web nhận yêu cầu của người dùng gửi đến từ phía máy khách,
xử lý và chuyển tiếp yêu cầu đến ứng dụng trên máy chủ có liên quan đã được cài đặt sẵn trong máy chủ web, trường hợp này là ứng dụng WebGIS
c Ứng dụng WebGIS chạy trên máy chủ nhận các yêu cầu cụ thể đối với ứng dụng và gọi các hàm có liên quan để tính toán xử lý Trong quá trình xử lý, nếu có yêu cầu dữ liệu nó sẽ gửi yêu cầu dữ liệu đến máy chủ tổng hợp dữ liệu
d Máy chủ tổng hợp dữ liệu nhận yêu cầu dữ liệu và tìm kiếm vị trí của những dữ liệu này sau đó gửi yêu cầu dữ liệu đến máy chủ cơ sở dữ liệu có chứa
dữ liệu tương ứng cần tìm
e Máy chủ cơ sở dữ liệu tiến hành truy vấn lấy dữ liệu cần thiết và trả dữ liệu này về cho máy chủ tổng hợp dữ liệu
f Máy chủ tổng hợp dữ liệu nhận dữ liệu từ nhiều máy chủ lưu trữ cơ sỏ
dữ liệu khác nhau nằm rải rác trên mạng, sắp xếp dữ liệu lại theo trật tự của yêu cầu dữ liệu, sau đó gửi trả dữ liệu về cho ứng dụng WebGIS
g Ứng dụng WebGIS nhận dữ liệu trả về từ các máy chủ tổng hợp dữ liệu
và đưa chúng đến các hàm cần sử dụng, xử lý chúng tại đây và kết quả được trả
về cho máy chủ web
h Máy chủ web nhận về kết quả xử lý, thêm vào các ngữ cảnh web (HTML, Javascript) để có thể hiển thị được trên trình duyệt và cuối cùng gửi trả kết quả về cho trình duyệt dưới dạng các trang web
Hình 1.13: Các dạng yêu cầu từ phía máy khách
Trang 281.4.2 Các kiến trúc triển khai
Mô hình hoạt động của WebGIS được chia ra 2 phần, đó là các hoạt động
ở phía máy khách và các hoạt động xử lý ở phía máy chủ, cụ thể:
Phía máy khách: Máy khách được dùng để hiển thị kết quả đến cho
người dùng, nhận các điều khiển trực tiếp từ người dùng và tương tác với máy chủ web thông qua trình duyệt web Các trình duyệt web chủ yếu sử dụng ngôn ngữ HTML để định dạng trang web, thêm vào đó một vài thành phần bổ sung
được nhúng vào trình duyệt để tăng tính tương tác với người dùng
Phía máy chủ: Bao gồm máy chủ web, máy chủ ứng dụng bổ sung, máy
chủ tổng hợp dữ liệu và các máy chủ cơ sở dữ liệu phân tán Phía máy chủ có nhiệm vụ lưu trữ dữ liệu không gian, xử lý tính toán và trả về kết quả dưới dạng hiển thị được cho phía máy khách
- Máy chủ web: Máy chủ web được dùng để phục vụ cho các ứng dụng
web, máy chủ web sử dụng nghi thức HTTP để giao tiếp với trình duyệt web ở phía máy khách Tất cả các yêu cầu từ phía máy khách đối với ứng dụng web đều được máy chủ web nhận và thông dịch sau đó gọi các chức năng của ứng dụng thông qua các giao tiếp mạng
- Máy chủ ứng dụng bổ sung: Đây là phần chương trình gọi các hàm xử lý
dữ liệu GIS, gửi yêu cầu lấy dữ liệu đến máy chủ tổng hợp dữ liệu
- Máy chủ cơ sở dữ liệu: Máy chủ cơ sở dữ liệu là phần cơ bản của hầu
hết các hệ thống thông tin với nhiệm vụ quản lý và điều khiển truy cập dữ liệu Ban đầu, đa số hệ thống GIS sử dụng hệ thống tập tin để quản lý dữ liệu không gian và hệ quản trị cơ sở dữ liệu để quản lý dữ liệu thuộc tính Ngày nay, có nhiều sản phẩm và giải pháp phần mềm thay thế để quản lý dữ liệu không gian
và thuộc tính một cách chung nhất, ví dụ: SDE của ESRI (1998), SpatialWare của MapInfo (1998), … Nhìn chung các cơ sở dữ liệu sử dụng đều là các cơ sở
dữ liệu quan hệ, trong tương lai sẽ thay thế bằng cơ sở dữ liệu hướng đối tượng
- Máy chủ tổng hợp dữ liệu: Máy chủ tổng hợp dữ liệu được sử dụng để
chứa các chỉ mục và quản lý các nguồn dữ liệu không gian trong các máy chủ cơ
sở dữ liệu phân tán, máy chủ này đóng vai trò như một cuốn mục lục, thực hiện truy vấn trong mục lục này để tìm địa chỉ chứa nguồn dữ liệu cần dùng
Có 2 chiến thuật lựa chọn, tương ứng với 2 kiểu triển khai kiến trúc, kiểu thứ nhất tập trung công việc chủ yếu cho phía máy chủ, kiểu kia ngược lại tập trung công việc cho phía máy khách
Trang 291.4.2.1 Chiến thuật hướng máy chủ
Những chiến thuật này tập trung vào việc cung cấp dữ liệu GIS và phân tích theo yêu cầu bởi một máy chủ đủ mạnh, máy chủ này sẽ truy cập dữ liệu và phần mềm cần thiết để xử lý dữ liệu Trong đó, máy khách cấu hình không đòi hỏi cao, chỉ cần chạy chương trình để gửi các yêu cầu và hiển thị được các trả lời từ máy chủ
Trong WebGIS, chiến thuật hướng máy chủ dựa trên khả năng trình duyêt web của người dùng có thể gửi các yêu cầu đến các phần mềm GIS trên máy chủ thông qua Internet Các chương trình được dùng để nhận và xử lý yêu cầu người dùng có thể được viết bằng các ngôn ngữ như: Perl, PHP, ASP.NET, Visual Basic, C++, … Các chương trình này cũng có thể mua từ các nhà sản xuất để tạo khả năng kết nối tốt hơn đến các hệ xử lý GIS đã tồn tại Để có thể giao tiếp với các ứng dụng WebGIS đặt trên máy chủ, máy chủ web có thể sử dụng các chuẩn giao tiếp phổ biến như CGI, Java, ISAPI, NSAPI, …
Thuận lợi của chiến thuật:
- Với máy chủ có cấu hình mạnh, người dùng có thể truy xuất trên tập dữ liệu lớn và phức tạp, thay vì phải xử lý trên máy khách với cấu hình hạn chế;
- Việc phân tích, xử lý các chức năng GIS sẽ được tiến hành nhanh chóng trên máy chủ và không đòi hỏi quá nhiều ở người dùng sự am hiểu
- Kiểm soát được các thao tác của người dùng trên dữ liệu và luôn đảm bảo người dùng nhận kết quả đúng từ dữ liệu do phía máy khách không phải xử
lý nhiều
Khó khăn của chiến thuật:
- Với chiến thuật này thì dù yêu cầu là nhỏ hay lớn, tất cả đều gửi về phía máy chủ, khi máy chủ xử lý xong lại gửi trả về cho máy khách thông qua đường truyền trên mạng
- Hiệu năng của hệ thống WebGIS sẽ bị ảnh hưởng bởi băng thông và và đường truyền mạng Internet giữa máy chủ và máy khách,nhất là khi kết quả trả
về bao gồm lượng dữ liệu có dung lượng lớn
- Hệ thống WebGIS sử dụng chiến thuật này không tận dụng được khả năng xử lý trên máy khách, chủ yếu máy khách chỉ xử lý gửi yêu cầu và hiển thị kết quả đáp ứng
Nhìn chung, chiến thuật này áp dụng tốt nhất cho các ứng dụng WebGIS thương mại hay cộng đồng với số lượng lớn người dùng mà không quan tâm đến khả năng xử lý GIS trên các máy người dùng
Trang 301.4.2.2 Chiến thuật hướng máy khách
Thay vì để máy chủ làm quá nhiều việc, một số chức năng xử lý GIS sẽ được đưa về phía máy người dùng, và tại đây sẽ có một phần dữ liệu được xử lý, chiến thuật này có 2 dạng triển khai gồm:
a) Các ứng dụng xử lý dữ liệu GIS được phân phối đến máy khách khi có yêu cầu, trong cách triển khai chiến thuật này việc xử lý dữ liệu GIS sẽ được máy chủ cung cấp cho phía máy khách dưới dạng các chương trình thực thi nhỏ
để có thể chạy được ở phía máy khách Những ứng dụng xử lý dữ liệu GIS được phân phối đến máy khách khi máy khách cần nó để xử lý dữ liệu GIS
b) Các ứng dụng xử lý dữ liệu GIS cố định ở máy khách: Cách triển khai trên cần thêm các chức năng xử lý GIS vào trình duyệt, tuy nhiên việc chuyển
dữ liệu và các ứng dựn xử lý dữ liệu GIS cần thiết qua mạng Internet mất nhiều thời gian, nhất là khi ứng dụng ít được dùng đến, giải pháp cho vấn đề này là cách triển khai sau đây:
- Chuyển các ứng dụng xử lý dữ liệu GIS đến máy tính máy khách một cách cố định, và không phải chuyển đến mỗi khi cần nữa;
- Tải và cài đặt cố định các các ứng dụng bổ sung vào trình duyệt web của máy khách để xử lý dữ liệu GIS;
- Xây dựng một trình duyệt web có tích hợp sẵn phần mềm xử lý GIS để chạy trên máy khách;
- Tích hợp các liên kết đến nguồn tài nguyên dữ liệu khác trên mạng trong mỗi gói dữ liệu tải về;
- Máy chủ chỉ được gọi khi máy khách cần dữ liệu mới, hoặc dữ liệu cho một ứng dụng mới;
- Người dùng được toàn quyền thao tác trên dữ liệu họ dùng và phân tích chúng
Thuận lợi của chiến thuật:
- Tận dụng sức mạnh xử lý trên máy người dùng;
- Người dùng được quyền điều khiển trong quá trình phân tích dữ liệu;
- Khi máy chủ gửi dữ liệu cần thiết về, người dùng có thể làm việc với dữ liệu này mà không phải gửi đi hay nhận về cái gì khác từ mạng
Khó khăn của chiến thuật:
- Các hồi đáp từ máy chủ có thể bao gồm lượng lớn dữ liệu cũng như các applet (cho lần đầu tiên khi trình duyệt tại máy sử dụng chạy ứng dụng WebGIS) có thể dẫn đến sự trì hoãn;
Trang 31- Dữ liệu GIS thường lớn và phức tạp dẫn đến sẽ khó xử lý nếu máy khách không có cấu hình mạnh
- Người dùng có thể chưa được trang bị đầy đủ kỹ năng để thực hiện các chức năng phân tích dữ liệu một cách chính xác, giải pháp này không dành cho người dùng bình thường
1.4.2.3 Kết hợp hai chiến thuật
Áp dụng thuần túy 2 chiến thuật trên đều có những hạn chế nhất định, đối với chiến thuật hướng máy chủ thì chất lượng đường truyền sẽ ảnh hưởng đến tốc độ và thời gian truyền giữa yêu cầu và hồi đáp Trong khi đó với chiến thuật hướng máy khách lại phụ thuộc vào cấu hình máy máy khách, một số thao tác có thể chậm do đòi hỏi bộ xử lý mạnh không được đáp ứng Kết hợp 2 chiến thuật cho ta một giải pháp hỗn hợp, tận dụng được ưu điểm của 2 chiến thuật trên, những công việc đòi hỏi dữ liệu lớn, tính toán phức tạp giao cho máy chủ xử lý, ngược lại đối với những công việc đòi hỏi người dùng có quyền điều khiển cao được giao cho máy khách Như vậy đòi hỏi thông tin về cấu hình của máy chủ
và máy khách cần được chia sẻ cho nhau
1.5 Các chuẩn trao đổi dữ liệu WebGIS
1.5.1 Việc trao đổi dữ liệu của hệ thống WebGIS
Có rất nhiều ứng dụng GIS đã được phát triển trong nhiều lĩnh vực như điều khiển, quản lý tài nguyên, giao thông, giáo dục, tài nguyên nước, trong lĩnh vực quân sự, …Với mỗi ứng dụng GIS, dữ liệu GIS cũng được tạo ra tương ứng Thông thường các dữ liệu này sẽ rất lớn và tốn thời gian và công sức để xây dựng Vấn đề chia sẻ nguồn tài nguyên dữ liệu được đặt ra
Hình 1.14: Dữ liệu GIS trong kiến trúc WebGIS đơn thể
Trang 32Trong mô hình kiến trúc trên, hệ thống WebGIS được gọi là đơn thể Vì trong đó dữ liệu GIS được dùng chỉ cho một nhóm ứng dụng GIS Trong khi dữ liệu GIS này có thể được sử dụng cho các nhóm ứng dụng GIS khác Việc chia
sẻ dữ liệu GIS này thường khó khăn, các nhóm ứng dụng GIS sẽ dùng chung trên toàn thể dữ liệu này Ví dụ: Dữ liệu bản đồ thành phố dùng cho nhóm các ứng dụng tìm đường đi trong thành phố, dữ liệu này cũng có thể được dùng cho các nhóm ứng dụng tìm thông tin địa điểm như quán ăn, nhà hàng hoặc nhóm ứng dụng liên quan đến hệ định vị toàn cầu, …
Hình 1.15: Chia sẻ dữ liệu GIS giữa các nhóm ứng dụng 1.5.2 Giải pháp cho vấn đề chia sẻ dữ liệu
1.5.2.1 Chuẩn chia sẻ dữ liệu WMS
WMS là một chuẩn do tổ chức OGC đưa ra, trong đó máy chủ web sẽ trở thành máy chủ dữ liệu bản đồ có dịch vụ phục vụ cho chia sẻ dữ liệu Các hoạt động mà máy khách có thể thực hiện thông qua dịch vụ này gồm: Nhận về mô tả các bản đồ, nhận về bản đồ và các thông tin truy vấn các đặc điểm được thể hiện trên bản đồ Chuẩn này không áp dụng cho việc nhận về dữ liệu thô mà thường nhận về một ảnh bản đồ dạng đồ họa, những bản đồ này thường được tạo ra với các định dạng như PNG, GIF, JEPG hoặc cũng có thể là dưới dạng các yếu tố đồ họa như SVG, XML hoặc định dạng WebCGM
1.5.2.2 Chuẩn chia sẻ dữ liệu WFS
WFS cũng là chuẩn do OGC đưa ra, trong đó máy chủ web giờ được gọi
là WFS có dịch vụ phục vụ việc chia sẻ dữ liệu Tuy nhiên thay vì trả về một ảnh bản đồ dạng đồ họa thì WFS sẽ gửi trả về thông tin không gian và thông tin thuộc tính có liên quan dưới dạng tập tin GML và sau đó máy khách sử dụng tập tin này làm dữ liệu để tạo ra ảnh bản đồ WFS hoàn toàn tương tự như WMS về các chức năng, cách làm việc chỉ khác nhau dạng dữ liệu trao đổi
Trang 33CHƯƠNG 2: BẢN ĐỒ SỐ GOOGLE MAP VÀ ỨNG DỤNG
2.1 Bản đồ số Google Map
2.1.1 Tổng quan về bản đồ số Google Map
Goole Map là dịch vụ bản đồ trên môi trường mạng được cung cấp miễn phí bởi Google từ năm 2005, đây là dịch vụ cho phép thể hiện bản đồ thế giới với nhiều tầng thông tin qua môi trường mạng Được xây dựng trên nền tảng dịch vụ bản đồ đa dạng, hỗ trợ truy cập qua các phần mềm độc lập hoặc qua trình duyệt web từ máy tính, qua thiết bị di động, thiết bị định vị toàn cầu, đặc biệt Google Map hỗ trợ bên thứ ba phát triển các ứng dụng WebGIS đa dạng thông qua dịch vụ Google Map API Ngay sau khi được giới thiệu, Google Map nhanh chóng phát triển mạnh, đặc biệt là sau khi cung cấp các phiên bản cho phép cá nhân hoá bản đồ Việc cá nhân hóa bản đồ không chỉ dừng lại ở mức đánh dấu địa điểm, phiên bản mới nhất của Google Map đã cung cấp các công
cụ cho phép khoanh vùng địa lý, gắn kết hình ảnh, video, hỗ trợ tối đa cho nhu cầu và sự sáng tạo của người dùng và các tổ chức phát triển các dịch vụ WebGIS [17]
Bản thân Google Map là một hệ thống GIS khổng lồ, tuy nhiên cuộc cách mạng ở đây so với các hệ thống GIS khác chính là tính mở và lợi thế dễ dàng cung cấp cho người dùng do đây là một hệ thống WebGIS Được xây dựng trên công nghệ điện toán đám mây, kỹ thuật web 2.0, AJAX, kết hợp với việc liên tục hoàn thiện và đa dạng hóa dịch vụ cung cấp cho người dùng, Google Map đã trở thành một dịch vụ WebGIS hàng đầu với lượng người rất lớn trên toàn cầu Tuỳ thuộc vào vị trí, chúng ta có thể xem bản đồ và thông tin liên quan tới vị trí
ở dạng cơ bản hoặc tuỳ chỉnh bao gồm vị trí, thông tin liên hệ, bản đồ đường giao thông trong khu vực, ảnh chụp vệ tinh của địa điểm, xem các khu vực lân cận, … Tuy nhiên tại Việt Nam, một số dịch vụ tiện ích của Google Map chưa được hỗ trợ
Trong chương trước, chúng ta đã nghiên cứu các nguyên tắc cơ bản của một hệ thống thông tin địa lý và mô hình kiến trúc điển hình của một hệ thống thông tin địa lý phân tán trên mạng Qua nghiên cứu chúng ta thấy WebGIS có rất nhiều ưu điểm trong việc triển khai một hệ thống GIS lớn, tuy vậy điểm hạn chế lớn nhất của WebGIS là vấn đề tốc độ xử lý của ứng dụng nguyên nhân chính do đường truyền mạng và khả năng xử lý từ phía máy chủ Sau khi Google Map ra đời và hỗ trợ bên thứ ba phát triển các ứng dụng WebGIS trên
Trang 34nền tảng các dịch vụ miễn phí của mình, các nhà phát triển ứng dụng bản đồ qua mạng đã giải quyết được cơ bản những hạn chế của hệ thống WebGIS, tốc độ ứng dụng được đảm bảo do Google Map vận hành trong một hệ thống máy chủ mạnh dựa trên công nghệ điện toán đám mây, đồng thời việc sử dụng AJAX và web 2.0 cũng đem lại những cải thiện rất lớn cho ứng dụng bản đồ trên mạng
Google Map hỗ trợ rất nhiều phương thức sử dụng thông qua nhiều loại thiết bị khác nhau, cách dễ dàng nhất là truy cập từ trình duyệt web của máy tính hoặc các thiết bị di động thông minh thông tại địa chỉ http://maps.google.com, giao diện cơ bản của Google Map được mô tả cụ thể tại Hình 2.1:
Hình 2.1: Giao diện web cơ bản của Google Map
Chi tiết chức năng và ý nghĩa của từng khu vực trong bản đồ như sau:
(1): Hỗ trợ người dùng tìm đường giữa hai địa điểm, hỗ trợ chỉ đường cho
các loại phương tiện giao thông khác nhau như xe con, phương tiện giao thông công cộng, xe đạp hoặc người đi bộ; liệt kê chi tiết các đoạn đường từ điểm xuất phát tới đích và xác định tương đối chính xác độ dài của đoạn đường đó
(2): Hỗ trợ việc xem và tùy chỉnh bản đồ thông qua việc cá nhân hóa (3): Hỗ trợ tìm kiếm một địa điểm; hỗ trợ tìm kiếm các địa điểm đã được
người dùng tạo ra thông qua việc cá nhân hóa bản đồ
(4): Hỗ trợ ẩn hoặc hiển thị bảng điều khiển khi thao tác với bản đồ
Trang 35(5): Xem thông tin giao thông
(6): Hỗ trợ bật hoặc tắt các tầng khác, tuỳ thuộc vào khu vực, chúng ta có
thể xem bản đồ chuyển tuyến, ảnh, thông tin trên Wikipedia và các thông tin khác liên quan tới địa điểm được lựa chọn trên bản đồ
(7): Hỗ trợ in hoặc gửi bản đồ qua email
(8): Hỗ trợ tạo địa chỉ web dạng URL cho bản đồ trong trình duyệt để có
thể chia sẻ với người khác
(9): Hiển thị kết quả tìm kiếm địa điểm
(10): Hỗ trợ việc điều hướng khi xem bản đồ
(11): Hiện thị khu vực chính hiển thị bản đồ, các thông tin cá nhân hóa,
thông tin địa điểm, …
(12): Hỗ trợ xem hình ảnh đường phố gần địa điểm đang xem trên bản đồ (13): Cửa sổ hiển thị thông tin bổ sung cho địa điểm được chọn, địa điểm
đánh dấu hoặc kết quả tìm kiếm
(14): Xem Bản đồ toàn cảnh, hiển thị bản đồ bạn đang xem khớp với khu
vực địa lý rộng hơn
2.1.2 Tổng quan về API bản đồ Google
Google Map API là dịch vụ miễn phí cho phép các nhà phát triển web có thể sử dụng các chức năng có sẵn được cung cấp bởi Google Map để làm nền tảng xây dựng các ứng dụng WebGIS đáp ứng yêu cầu đa dạng trong mọi lĩnh vực của đời sống Khi sử dụng Google Map API để nhúng Google Map vào website riêng, chúng ta có thể dễ dàng cá nhân hóa bản đồ nhúng bằng việc thêm các đối tượng và các chức năng nhằm xây dựng các ứng dụng WebGIS theo những yêu cầu nghiệp vụ cụ thể Sau 5 tháng cung cấp dịch vụ Google Map, Google đã cung cấp phiên bản Map API đầu tiên, ngay sau khi được cung cấp, dịch vụ này đã được nhiều nhà phát triển web trên toàn cầu sử dụng, ước tính đến nay có khoảng 350.000 website đang sử dụng Google Map API trong các ứng dụng WebGIS thuộc nhiều lĩnh vực khác nhau [10]
Google cung cấp các dịch vụ API đa dạng cho các nhà phát triển web, bao gồm:
- Map JavaScript API: Cung cấp các API cho phép nhúng Google Map vào các website thông qua ngôn ngữ kịch bản Javascript
- Map API for Flash: Cung cấp các ActionScript API để nhúng Google Map vào các website được xây dựng trên nền Flash
Trang 36- Google Earth API: Cho phép nhúng bản đồ số 3D vào website, hiển thị hình ảnh trực quan của thế giới thực ngay trên website mà không cần công cụ hỗ trợ khác
- Static Map API: Cung cấp khả năng nhúng bản đồ Google vào website dưới dạng ảnh tĩnh, không yêu cầu Javascript hay bất cứ công nghệ web động nào khác
- Map API Web Services: Cho phép các ứng dụng cài cài trên máy khách
sử dụng các lện truy vấn địa chỉ để truy cập mã vị trí geocoding, thông tin vị trí, thông tin chỉ đường, và các thông tin mở rộng khác của Google Map để tổng hợp dữ liệu và trả về kết quả dạng XML hoặc JSON
Trong khuôn khổ của luận văn này, tác giả tập trung nghiên cứu về Google Map Javascript API và ứng dụng trong việc triển khai phần mềm quản lý mạng lưới trường học
2.2 Các API bản đồ Google sử dụng cho ngôn ngữ Javascript
2.2.1 Tổng quan về API bản đồ của Google cho javascript
Google Map Javascript API cho phép nhúng bản đồ Google vào website thông qua việc sử dụng ngôn ngữ Javascript trong các đoạn mã khi lập trình web
để gọi các hàm Javascript API được cung cấp bởi Google, các hàm này được thực thi tại trình duyệt của máy khách một cách dễ dàng và hầu như không cần yêu cầu cài đặt thêm các ứng dụng của bên thứ ba Google đã chính thức cung cấp Map Javascript API phiên bản 3 với việc tối ưu hóa khả năng thực thi, giúp website tải nhanh hơn và hỗ trợ thêm nhiều ứng dụng cho các thiết bị di động Phiên bản mới của API cung cấp nhiều ứng dụng cho phép thao tác với bản đồ
và thêm nội dung cho bản đồ thông qua các dịch vụ đa dạng, đây là nền tảng tốt
để phát triển một hệ thống WebGIS với đầy đủ các chức năng cần thiết [13] Một số đặc điểm nổi bật được hỗ trợ bởi Google Map Javascript API gồm:
Trang 37- Xác định vị trí người dùng: Hiện tại, có một số phương pháp để xác định
vị trí của người dùng thông qua trình duyệt web, đây là một API chuẩn của Google Map Đối với các trình duyệt mới thường hỗ trợ chuẩn W3C Geolocation, đây là một thành phần của ngôn ngữ HTML5 và đang trở nên thông dụng trong những năm gần đây, tất cả các ứng dụng thực thi geolocation đều phải hỗ trợ chuẩn này Một số trình duyệt đã được cài đặt phần mềm hỗ trợ trình duyệt web Google Gears có thể sử dụng Google Gears Geolocation API, hoàn toàn tương thích với các ứng dụng xác định vị trí người dùng Một số trình duyệt sử dụng địa chỉ IP để xác định vị trí người dùng, phương pháp thường chỉ cho độ chính xác tương đối, do đó Google không khuyến khích dùng các trình duyệt sử dụng phương pháp này cho việc xác định vị trí người dùng bằng geolocation Đối với các trình duyệt đã được cài đặt phần mềm Google Gears, cần chắc chắn trình duyệt đó hỗ trợ W3C
- Xác định vị trí thông qua các thông số của thiết bị định vị: Google cung
cấp các API cho phép xác định vị trí người dùng thông qua các thông số được cung cấp bởi các ứng dụng cài đặt trong các thiết bị có chức năng định vị thông qua việc thu phát sóng vô tuyến, các API này đặc biệt hữu ích cho các thiết bị di động Để sử dụng được các API này, các ứng dụng chạy trong thiết bị phải đáp ứng được các yêu cầu về thông số để đưa vào mã chương trình thực thi
2.2.1.2 Phát triển ứng dụng cho thiết bị di động
Google Maps API phiên bản 3 được thiết kế để thực thi tốt trên các thiết
bị di động, các API của phiên bản này được thiết kế để hỗ trợ tốt cho các thiết bị
di động sử dụng hệ điều hành iOS của Apple và Android của Google Do đặc trưng thiết bị di động có màn hình hiển thị nhỏ hơn máy tính cá nhân nên các API được thiết kế phù hợp để người phát triển ứng dụng có thể xây dựng các
ứng dụng thực thi tốt trên thiết bị di động
2.2.1.3 Địa phương hóa ứng dụng
Google Maps API hỗ trợ các ứng dụng có thể địa phương hóa thông qua việc cho phép thay đổi ngôn ngữ mặc định và cài đặt mã vùng khi xây dựng ứng
dụng, bao gồm hai dạng:
- Địa phương hóa thông qua thay đổi ngôn ngữ: Khi cài đặt mặc định,
Google Map API sử dụng ngôn ngữ mặc định của trình duyệt để hiển thị ngôn ngữ liên quan tới thông tin chỉ dẫn, các thông số hiển thị trên bản đồ Trong trường hợp người phát triển muốn thay đổi ngôn ngữ mặc định cho ứng dụng,
Google cung cấp các khai báo cho phép thực thi việc này bằng hàm javascript
Trang 38- Lựa chọn máy chủ cung cấp dữ liệu bản đồ của Google: Thông thường, Map API được cung cấp mặc định tại máy chủ maps.google.com, tuy nhiên Google cho phép thay đổi máy chủ cung cấp bản đồ nền, cụ thể là chuyển sang những máy chủ hỗ trợ từng quốc gia hoặc từng khu vực, để làm việc này người lập trình cần khai báo trong mã javascript khi viết ứng dụng
2.2.1.4 Thư viện trong Google Map API
Google cung cấp thư viện để Map API sử dụng thông qua địa chỉ http://maps.google.com/maps/api/js, thư viện này chứa các đối tượng chính sử dụng trong Map API Một số chức năng của Map API có sẵn trong thư viện nhưng không được tải nếu không có yêu cầu của người lập trình, việc chỉ tải các thành phần cơ bản của thư viện giúp thực thi ứng dụng nhanh hơn, người lập trình chỉ yêu cầu các chức năng bổ sung trong thư viện khi cần dùng đến, một số thư viện mở rộng điển hình gồm:
- Geomtry: Bao gồm các hàm cho phép tính toán các giá trị hình học (khoảng cách, vùng) trên bề mặt trái đất
- Adsense: Thư viện hỗ trợ xử lý văn bản trong bản đồ
- Panoramio: Chứa các hàm cho phép thêm các tầng ảnh cho ứng dụng bản đồ
2.2.1.5 Tải API qua giao thức an toàn https
Để đáp ứng yêu cầu bảo mật cao của một số ứng dụng, Google hỗ trợ truy cập Google Map Javascript API qua giao thức https Để tải API qua giao thức https, lập trình viên cần khai báo trong mã lập trình javascript của ứng dụng Việc hỗ trợ tải API thông qua https sẽ giải quyết được yêu cầu phát triển các ứng dụng WebGIS tích hợp trong các website sử dụng giao thức https với yêu cầu bảo mật cao
2.2.1.6 Tải Javascript API không đồng bộ
Thông thường, Javascript Map API được tải khi người lập trình khai báo API trong mã lập trình, ứng dụng sẽ được thực thi và hiển thị cho người dùng trình duyệt sau khi các hàm javascript đã tải thành công Tuy nhiên một số trường hợp trang đã tải xong nhưng các ứng dụng Javascript Map API chưa thực hiện xong việc xử lý và trả về kết quả, dẫn tới nội dung hiển thị kết quả cho người dùng không đầy đủ, như vậy người dùng không nhận được kết quả chính xác của ứng dụng Để giải quyết vấn đề này, Google hỗ trợ khả năng tải Javascript Map API sau khi trang đã được tải và có thể thực thi để trả kết quả bổ sung cho trình duyệt theo hình thức không đồng bộ, tức là chỉ hiển thị lại những
Trang 39chi tiết thay đổi nội dung, các chi tiết khác vẫn được giữ nguyên Đây là một lợi thế của ứng dụng AJAX, giúp dễ dàng thực thi các ứng dụng Javascript Map API nhưng lại giảm tải đáng kể cho đường truyền, tạo cho người dùng dễ dàng thao tác và nhận kết quả mong muốn
2.2.1.7 Việc cập nhật Google Map API
Hiện tại Javascript Map API đã được cập nhật tới phiên bản 3 với nhiều cải thiện về hiệu năng, các chức năng mới, khả năng bảo mật và đặc biệt hỗ trợ tốt hơn cho các thiết bị di động Đối với các ứng dụng sử dụng Javascript Map API các phiên bản trước vẫn có thể chạy tốt do Google lưu trữ và hỗ trợ tất cả các phiên bản đã phát hành Khi xây dựng ứng dụng bản đồ sử dụng Javascript Map API, lập trình viên có thể khai báo chính xác phiên bản API muốn sử dụng trong mã javascript, nếu không có khai báo cụ thể, hệ thống sẽ tự động sử dụng phiên bản API mới nhất
2.2.1.8 Phân nhóm Google Map API
Google Map Javascript API được phân loại theo 5 nhóm chức năng chính,
bao gồm:
- Các đối tượng cơ bản: Cung cấp các API cơ bản giúp điều khiển bản đồ
và sử dụng các đối tượng có trong Google Map để xây dựng ứng dụng WebGIS
- Các sự kiện: Cung cấp các API liên quan tới khả năng đáp ứng về mặt nội dung của bản đồ khi xảy ra các sự kiện trên trình duyệt
- Các đối tượng điều khiển: Cung cấp các API cho phép điều chỉnh đối tượng giao diện người dùng trên bản đồ theo yêu cầu cụ thể của từng cá nhân
- Các tầng bổ sung chồng lặp bản đồ: Các API cho phép tạo ra các tầng bản đồ với các đối tượng như điểm, đường, khu vực để tùy biến bản đồ cho phù
hợp hơn với mục đích của ứng dụng
- Các dịch vụ bản đồ: Cung cấp các dịch vụ web cho phép sử dụng trong các ngôn ngữ lập trình chạy trên máy chủ để phát triển các ứng dụng WebGIS chuyên nghiệp
2.2.2 Các đối tượng bản đồ cơ bản
Nguyên tắc cơ bản của API phiên bản 3 là khả năng tự xây dựng bản đồ, giảm thiểu tối đa yêu cầu viết mã của người lập trình thông qua việc cung cấp các hàm, thư viện phong phú cho người sử dụng Trong phần này, chúng ta sẽ nghiên cứu các nguyên tắc cơ bản để xây dựng một ứng dụng WebGIS đơn giản
sử dụng Google Map API phiên bản 3 Trước khi tiến hành xây dựng những ứng dụng phức tạp với cơ sở dữ liệu riêng, đồng thời quản lý API được thực hiện
Trang 40thông qua một ngôn ngữ lập trình chạy trên máy chủ, chúng ta cần nghiên cứu các nguyên tắc cơ bản để hiểu được cách thức các API đáp ứng yêu cầu của lập trình viên cũng như những quy tắc mà các API này yêu cầu người lập trình phải tuân thủ
Các nguyên tắc cơ bản để nhúng một bản đồ vào website gồm:
- Sử dụng ngôn ngữ HTML5 thông qua khai báo <!DOCTYPE html> Các trình duyệt thông dụng hiện nay tương thích tốt với ngôn ngữ này và chế độ chuẩn của nó sẽ là nền tảng tốt để chạy các ứng dụng bản đồ của Google
- Sử dụng thẻ <scripts> để khai báo sử dụng Google Map API, địa chỉ lưu trữ API được Google cung cấp tại http://maps.google.com/maps/api/js Trong trường hợp phát triển ứng dụng cho thiết bị di động, chúng ta cần khai báo thẻ
<meta> đảm bảo khả năng hiển thị ở chế độ toàn màn hình, bên cạnh đó cần các khai báo liên quan tới việc cho phép sử dụng dữ liệu cung cấp bởi các thiết bị định vị khi triển khai các ứng dụng loại này
- Định vị khu vực hiển thị bản đồ thông qua định nghĩa <div> với các thông số về chiều cao, chiều rộng vùng hiển thị, đối với thiết bị di động, các chiều thường được khuyến nghị để mức 100% Bản đồ Google sẽ tự điều chỉnh kích thước để hiển thị phù hợp trong khu vực hiển thị đã được định nghĩa
- Để bản đồ hiển thị đúng yêu cầu, chúng ta cần khai báo thêm một số thông số cơ bản như tọa độ khu vực trung tâm cần hiển thị, tỷ lệ (độ phóng đại), đặc biệt là loại bản đồ sẽ được hiển thị, hiện tại Google hỗ trợ các loại bản đồ
sau: ROADMAP hiển thị bản đồ thông thường dạng 2D hoặc 3D của Google; SATELLITE hiển thị bản đồ thế giới thực thông qua ảnh vệ tinh; HYBRID hiển
thị phối hợp giữa bản đồ thế giới thực và một số tầng của bản đồ thường như tên
đường, tên khu vực; TERRAIN hiển thị bản đồ giảm lược để làm rõ một số đối
tượng như sống, núi
- Gọi hàm Javascript để tạo đối tượng bản đồ theo các tham số đã cung cấp, hàm này chứa tầng định nghĩa một bản đồ trên website Trong một trang, chúng ta có thể nhúng nhiều bản đồ thông qua việc gọi hàm với các tham số độc lập Khi một bản đồ đã được tạo, chúng ta cần khai báo để nó hiển thị đúng khu vực đã định nghĩa thông qua thẻ <div>
- Tải bản đồ: Khi trang HTML được hình thành, các hình ảnh và scritps thực thi xong, hàm xây dựng bản đồ sẽ được gọi một lần duy nhất để tạo và hiển thị bản đồ trên trang tại vị trí đã định