Tài liệu Khóa luận Xây dựng hệ thống quản lý bản đồ số dựa trên công nghệ mapserver - Nguyễn Cao Cường: ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Cao Cường
XÂY DỰNG HỆ THỐNG QUẢN LÝ BẢN ĐỒ SỐ DỰA TRÊN CÔNG NGHỆ MAPSERVER
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
HÀ NỘI - 2009
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Cao Cường
XÂY DỰNG HỆ THỐNG QUẢN LÝ BẢN ĐỒ SỐ DỰA TRÊN CÔNG NGHỆ MAPSERVER
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
Cán bộ hướng dẫn: TS. Trần Minh
HÀ NỘI - 2009
TÓM TẮT NỘI DUNG KHÓA LUẬN
Ngày nay Hệ thống thông tin địa lý (GIS – Geographic Information System) đã phát triển rất mạnh, nó được ứng dụng vào rất nhiều ngành và lĩnh vực khác nhau như trong quân sự, dự báo thời tiết, bản đồ tìm đường đi, bản đồ địa chất, khoáng sản… Cùng với sự bùng nổ của mạng internet toàn cầu và phần cứng máy tính, GIS đã phát triển công nghệ cho phép chia sẻ các thông tin qua mạng, người sử dụng ở khắp mọi nơi trên thế giới đều có thể sử dụng các ứng dụng này thông qua internet. Việc này đòi hỏ...
83 trang |
Chia sẻ: hunglv | Lượt xem: 1071 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Khóa luận Xây dựng hệ thống quản lý bản đồ số dựa trên công nghệ mapserver - Nguyễn Cao Cường, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Cao Cường
XÂY DỰNG HỆ THỐNG QUẢN LÝ BẢN ĐỒ SỐ DỰA TRÊN CÔNG NGHỆ MAPSERVER
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
HÀ NỘI - 2009
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Cao Cường
XÂY DỰNG HỆ THỐNG QUẢN LÝ BẢN ĐỒ SỐ DỰA TRÊN CÔNG NGHỆ MAPSERVER
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
Cán bộ hướng dẫn: TS. Trần Minh
HÀ NỘI - 2009
TÓM TẮT NỘI DUNG KHÓA LUẬN
Ngày nay Hệ thống thông tin địa lý (GIS – Geographic Information System) đã phát triển rất mạnh, nó được ứng dụng vào rất nhiều ngành và lĩnh vực khác nhau như trong quân sự, dự báo thời tiết, bản đồ tìm đường đi, bản đồ địa chất, khoáng sản… Cùng với sự bùng nổ của mạng internet toàn cầu và phần cứng máy tính, GIS đã phát triển công nghệ cho phép chia sẻ các thông tin qua mạng, người sử dụng ở khắp mọi nơi trên thế giới đều có thể sử dụng các ứng dụng này thông qua internet. Việc này đòi hỏi phải có một ứng dụng trên nền web là sự kết hợp của GIS và web, để quản lý các thông tin trên bản đồ cho phép xem nội dung các thông tin bản đồ trên web, có thể thêm hoặc xóa sửa các thông tin này. Bên cạnh đó, xu hướng phát triển phần mềm dựa trên công nghệ mã nguồn mở cũng đang được phát triển rất mạnh vì nhiều lợi ích mà nó mang lại. Vì thế, việc nghiên cứu ứng dụng quản lý bản đồ số dựa trên cơ sở mã nguồn mở sẽ mang lại khả năng chia sẻ thông tin địa lý rộng rãi.
Nội dung chính của đề tài là nghiên cứu công nghệ mã nguồn mở MapServer, trên cơ sở đó xây dựng một ứng dụng quản lý bản đồ số WebGIS phục vụ cho mục đích nhất định.
Mục lục
Mở đầu 1
Chương 1 Cơ sở địa lý học 3
Khái niện chung về bản đồ địa lý 3
1.1.1 Định nghĩa bản đồ 3
1.1.1.1. Bản đồ - mô hình toán học 3
1.1.1.2. Mô hình thực tiễn 4
1.1.1.3. Bản đồ - mô hình qui ước 5
1.1.2 Các tính chất của bản đồ 5
1.1.3 Cơ sở toán học của bản đồ địa lý 6
1.1.3.1. Tỉ lệ bản đồ (map scale) 6
1.1.3.2. Cơ sở trắc địa – thiên văn của bản đồ 6
1.1.3.3. Hệ toạ độ 8
1.2 Các hệ qui chiếu bản đồ (Map Projection) 8
1.2.1 Lưới chiếu bản đồ (lưới kinh vĩ tuyến) 8
1.2.1.1. Phép chiếu bản đồ 8
1.2.1.2. Các phép chiếu hình và lưới chiếu hình 9
1.2.2 Bố cục bản đồ 14
1.3. Các phương pháp biểu thị hiện tượng trên bản đồ 14
1.3.1. Phương pháp đường đẳng trị 14
1.3.2. Phương pháp chấm điểm 15
1.3.3. Phương pháp ký hiệu đường 15
1.3.4. Phương pháp ký hiệu đường chuyển động 15
1.3.5. Phương pháp biểu đồ định vị 16
1.3.6. Phương pháp ký hiệu 16
1.3.7. Phương pháp biểu đồ 16
Chương 2 GIS – Hệ thống thông tin địa lý 17
2.1. Khái niệm hệ thống thông tin địa lý 17
2.1.1 Định nghĩa GIS 17
2.1.2 Các thành phần của GIS 18
2.1.2.1. Thiết bị (Hardware) 18
2.1.2.2. Phần mềm 18
2.1.2.3. Chuyên viên 19
2.1.2.4. Dữ liệu địa lý (Geographic data) 19
2.1.2.5. Chính sách và quản lý 20
2.2 Dữ liệu trong GIS 20
2.2.1 Các dạng dữ liệu GIS 20
2.2.2 Mô hình thông tin không gian 20
2.2.2.1. Hệ thống vector 21
2.2.2.2. Hệ thống raster 25
2.2.2.3. Chuyển đổi cơ sở dữ liệu dạng vector và raster 29
2.2.2.4. So sánh vector và raster 30
2.2.3 Mô hình thông tin thuộc tính 31
2.3. WebGIS – Công nghệ GIS qua mạng 33
2.3.1. Giới thiệu WebGIS 34
2.3.2. Sơ đồ hoạt động của WebGIS 34
2.3.3. Tiềm năng của WebGIS 35
2.3.4. Các kiến trúc triển khai WebGIS 35
2.3.4.1. Server side 35
2.3.4.2. Client side 36
2.3.4.3. Kết hợp cả 2 chiến lược 37
2.3.5. Trao đổi dữ liệu của hệ thống WebGIS 38
2.3.5.1. Web Map Service / Server 38
2.3.5.2. Web Feature Service / Server 39
Chương 3 MapServer – WebGIS Application 40
3.1. Giới thiệu Mapserver 40
3.2. Các thành phần của Mapserver 41
3.2.1 File khởi tạo 41
3.2.2 Map file 41
3.2.3 Template file 42
3.2.4 Dữ liệu GIS 42
3.3. Sơ đồ hoạt động của Mapserver 42
3.4. Cài đặt Mapserver 43
3.5. Tìm hiểu Mapfile 44
3.5.1. Map Object 44
3.5.2. Layer Object 46
3.5.3. Query Map Object 48
3.5.4. Projection Object 49
3.6. Kết nối các loại dữ liệu 51
3.6.1. Dữ liệu ESRI Shapefiles (SHP) 51
3.6.2. Kết nối dữ liệu Raster 53
3.6.3. Kết nối dùng thư viện OGR 56
3.6.4. Kết nối dữ liệu dùng WMS 60
3.6.5. Kết nối dữ liệu dùng WFS (Web Feature Server) 62
Chương 4: Xây dựng hệ thống quản lý bản đồ số dựa trên công nghệ
MapServer 64
4.1 Bài toán xây dựng hệ thống quản lý bản đồ số 64
4.2 Dữ liệu bản đồ 64
4.2.1 Shapefile 64
4.2.2 Xây dựng cơ sở dữ liệu 65
4.3 Xây dựng chương trình 66
4.3.1 Tạo Mapfile 66
4.3.2. Xây dựng các chức năng 67
4.3.2.1. Công cụ phóng to, thu nhỏ, pan 67
4.3.2.2. Công cụ hiển thị, tắt các lớp 67
4.3.2.3. Công cụ hiển thị thông tin của đối tượng 68
4.3.2.4. Công cụ tìm kiếm 68
4.3.3. Xây dựng các hàm xử lý 68
4.4. Cài đặt chương trình và thử nghiệm 71
4.4.1. Cài đặt 71
4.4.2. Một số giao diện chương trình 71
4.4.3. Thử nghiệm chương trình 74
Kết luận 75
Mở đầu
Trong lịch sử, con người đã biết sử dụng bản đồ từ rất lâu, bản đồ ban đầu chỉ là hình vẽ mô tả những thực thể trên mặt đất ở dạng đơn giản bằng các điểm, đường. Nó thường là các bản đồ quân sự và bản đồ thám hiểm. Ngày nay bản đồ giấy không chỉ là bản đồ quân sự hay thám hiểm, nó đã mang trên mình được rất nhiều thông tin, và phân ra làm nhiều loại bản đồ khác nhau. Nó sử dụng các đường nét, màu sắc, ký hiệu, chữ và số để thể hiện các thông tin địa lý. Nó có thể mô tả vị trí, hình dạng đặc tính có thể nhận thấy như phong cảnh: sông, suối, đường xá, làng mạc, rừng cây… Bản đồ giúp con người có cái hình dung tổng thể và trừu tượng hơn, chúng ta có thể dùng bản đồ để tìm đường đi, tìm điểm du lịch…
Tuy nhiên ngày nay thì lượng thông tin càng ngày càng nhiều, và phân hóa thành nhiều lĩnh vực khác nhau. Bản đồ in trên giấy với nhiều nhược điểm như thời gian xây dựng, đo đạc tạo lập và con người dùng cho việc tạo bản đồ là rất nhiều và tốn kém. Lượng thông tin trên bản đồ giấy lại hạn chế vì quá nhiều thông tin sẽ gây khó đọc, và không thể cập nhật theo thời gian. Bản đồ máy tính ra đời, nó là sự mô hình hóa không gian và lưu trữ vào trong máy tính, nó có thể hiển thị trên máy tính và in ra giấy. Thuật ngữ GIS (hệ thống thông tin địa lý) ra đời, GIS hình thành từ các ngành khoa học: địa lý, toán học, bản đồ, và tin học. GIS là một hệ thống nó bao gồm cả phần cứng và phần mềm, phục vụ cho việc vẽ bản đồ, phân tích vật thể, hiện tượng trên trái đất. GIS có thể tạo được bản đồ tĩnh nhiều màu sắc đẹp và hơn nữa là bản đồ động, giúp người dùng có thể chọn lựa và bỏ bất cứ thành phần nào trên bản đồ nhằm phân tích một cách nhanh chóng các yếu tố trên bản đồ. GIS ra đời từ những năm 1960 tới nay, nhưng nó chưa đến được với người dùng, vì các ứng dụng GIS thường vẫn là các ứng dụng GIS chạy trên máy tính đơn, yêu cầu phải có phần mềm riêng biệt cho việc xử lý các thông tin GIS. Cùng với sự bùng nổ của công nghệ thông tin và mạng internet toàn cầu, máy tính đã trở nên phổ biến. Và GIS cũng đã thực sự bùng nổ từ nhu cầu thực tiễn. Tất cả các ngành như quy hoạch, quản lý tài nguyên và môi trường, quản lý đô thị, giao thông, phòng chống và giảm nhẹ thiên tai, thông tin du lịch; tất cả các cấp từ quốc gia, tỉnh, huyện đến xã, thôn đều có nhu cầu ứng dụng GIS cho các hoạt động điều hành, quản lý. Bản đồ sẽ được số hóa và đưa lên trên mạng internet, người dùng trên khắp thế giới chỉ cần có máy tính nối mạng internet và trình duyệt web, là có thể sử dụng bản đồ này một cách dễ dàng mà không phải cài đặt thêm một phần mềm nào phức tạp và tốn kém.
Nội dung chính của đề tài là tìm hiểu công nghệ Mapserver mã nguồn mở, áp dụng xây dựng các ứng dụng GIS mà tiêu biểu là WebGIS trên internet.
Nội dung khóa luận được chia làm 4 chương.
Chương 1: Cơ sở địa lý học, tìm hiểu về bản đồ, cơ sở toán học của bản đồ, các phép chiếu hình bản đồ, các phương pháp biểu thị đối tượng trên bản đồ.
Chương 2: GIS các thành phần của một hệ thống GIS, các dạng dữ liệu GIS, WebGIS công nghệ GIS trên mạng internet.
Chương 3: Tìm hiểu phần mềm mã nguồn mở MapServer, hoạt động của Mapserver, Các thành phần của Mapserver, Kết nối dữ các loại dữ liệu bản đồ trong MapServer.
Chương 4 : Xây dựng hệ thống quản lý bản đồ số dựa trên MapServer
Khóa luận sẽ rất khó hoàn thành nếu không có sự giúp đỡ tận tình, và truyền đạt các kiến thức mới của thầy TS. Trần Minh. Em xin chân thành cảm ơn sự dạy dỗ chỉ bảo của thầy. Qua khóa luận em cũng xin được trân trọng cảm ơn các Thầy cô trong trường đã giảng dạy cho em kiến thức trong suốt bốn năm học, làm nền tảng vững chắc cho em thực hiện khóa luận.
Mặc dù đã cố gắng nỗ lực hết mình, nhưng do thời gian cũng như kiến thức của bản thân còn hạn chế nên không tránh khỏi những thiếu sót, rất mong được sự thông cảm và chỉ bảo tận tình của thầy cô và các bạn. Em xin chân thành cảm ơn!
Chương 1: Cơ sở địa lý học
1.1. Khái niệm chung về bản đồ địa lý
1.1.1. Định nghĩa bản đồ
Bản đồ địa lý là sự biểu thị thu nhỏ qui ước của bề mặt trái đất lên mặt phẳng, xây dựng trên cơ sở toán học với sự trợ giúp và sử dụng các ký hiệu qui ước để phản ánh sự phân bố, trạng thái và mối quan hệ tương quan của các hiện tượng thiên nhiên và xã hội được lựa chọn và khái quát hoá để phù hợp với mục đích sử dụng của bản đồ và đặc trưng cho khu vực nghiên cứu.
Hình 1: Biểu thị của bề mặt trái đất lên mặt phẳng
1.1.1.1. Bản đồ - mô hình toán học
Chúng ta biết trái đất có dạng Geoid, nhưng trong thực tế được coi là hình Elipxoid có kích thước và hình dạng gần đúng như hình Geoid. Bề mặt Geoid được tạo bởi mặt nước biển trung bình yên tĩnh kéo dài qua các lục địa và hải đảo tạo thành một mặt cong khép kín. Do tác dụng của trọng lực, sự phân bố không đều của vật chất có tỉ trọng khác nhau trong lớp vở trái đất làm cho bề mặt Geoid bị biến đổi phức tạp về mặt hình học.
Hình 2: Dạng Geoid và hình Elipxoid
Khi biểu thị lên mặt phẳng một phần nhỏ bề mặt trái đất (trong phạm vi 20x20 km) thì độ cong trái đất có thể bỏ qua. Trong trường hợp này các đường thẳng đã đo trên thực địa được thu nhỏ theo tỷ lệ qui định và biểu thị trên giấy không cần hiệu chỉnh độ cong của trái đất. Những bản vẽ như thế gọi là bình đồ. Trên bình đồ, tỷ lệ ở mọi nơi và mọi hướng đều như nhau. Trên bản đồ biểu thị toàn bộ trái đất hoặc một diện tích lớn thì độ cong của trái đất là không thể bỏ qua.Việc chuyển từ mặt Elipxoid lên mặt phẳng được thực hiện nhờ phép chiếu bản đồ. Các phép chiếu biểu hiện quan hệ giữa toạ độ các điểm trên mặt đất và toạ độ các điểm đó trên mặt phẳng bằng các phương pháp toán học. Các phần tử nội dung bản đồ giữ đúng vị trí địa lý, nhưng sẽ có sai số về hình dạng hoặc diện tích.
1.1.1.2. Mô hình thực tiễn
Trên bản đồ người ta thể hiện các đối tượng và hiện tượng có trên mặt đất trong thiên nhiên, xã hội và các lĩnh vực hoạt động của con người.
Các yếu tố nội dung của bản đồ :
- Thuỷ hệ
- Địa hình bề mặt
- Dân cư
- Đường giao thông
- Ranh giới hành chính - chính trị
- Lớp phủ thổ nhưỡng - thực vật
- Các đối tượng kinh tế xã hội
1.1.1.3. Bản đồ - mô hình qui ước
Các yếu tố nội dung của bản đồ được thể hiện bằng những ký hiệu qui ước. Các ký hiệu thể hiện vị trí, hình dáng kích thước của đối tượng trong thực tế, ngoài ra còn thể hiện một số đặc trưng về số lượng và chất lượng.
Phân ra 3 loại ký hiệu:
Ký hiệu theo tỷ lệ vùng
Ký hiệu theo tỷ lệ đường
Ký hiệu theo tỷ lệ điểm
Việc thể hiện kích thước và các đặc trưng khác đối tượng trên bản đồ đạt được bằng cách sử dụng màu sắc, cấu trúc của ký hiệu và các ghi chú kèm theo.Việc sử dụng hệ thống ký hiệu qui ước cho phép chúng ta:
- Biểu thị toàn bộ bề mặt trái đất hoặc những khu vực lớn trong một bản đồ giúp chúng ta nắm bắt những điểm quan trọng không thể thể hiện với tỷ lệ nhỏ.
- Thể hiện bề mặt lồi lõm của trái đất lên mặt phẳng
- Phản ánh các tính chất bên trong của sự vật, hiện tượng
- Thể hiện sự phân bố, các quan hệ của sự vật, hiện tượng một cách trực quan
- Loại bỏ những mặt ít giá trị, các chi tiết vụn vặt không đặc trưng hoặc đặc trưng cho các đối tượng riêng lẻ, mặt khác nêu bật các tính chất căn bản, các tính chất chung. Ký hiệu giữa những nét đặc trưng đó trên các bản đồ khác nhau về tỷ lệ và thể loại. Như vậy tạo điều kiện thuận lợi cho việc sử dụng các bản đồ khác nhau.
1.1.2. Các tính chất của bản đồ
Tính trực quan: bản đồ cho ta khả năng bao quát và tiếp thu nhanh chóng những yếu tố chủ yếu và quan trọng nhất của nội dung bản đồ. Nó phản ánh các tri thức về các đối tượng, hiện tượng được biểu thị bằng bản đồ. Người sử dụng có thể tìm ra những qui luật của sự phân bố các đối tượng và hiện tượng.
Tính đo được: có liên quan chặt chẽ với cơ sở toán học của bản đồ. Căn cứ vào tỷ lệ, phép chiếu, vào thang bậc của các dấu hiệu qui ước, người sử dụng có khả năng xác định các trị số khác nhau như: toạ độ, biên độ, khoảng cách, diện tích, thể tích, góc phương hướng. Chính nhờ tính chất này mà bản đồ được dùng làm cơ sở để xây dựng các mô hình toán học của các hiện tượng địa lý, giải quyết các bài toán khoa học và thực tiễn.
Tính thông tin: khả năng lưu trữ và truyền đạt cho người sử dụng.
1.1.3. Cơ sở toán học của bản đồ địa lý
Bao gồm:
- Tỷ lệ
- Cơ sở trắc địa và thiên văn
- Lưới kinh - vĩ tuyến và các lưới toạ độ khác
- Bố cục bản đồ và khung bản đồ
- Hệ thống chia mảnh
- Số liệu
1.1.3.1. Tỉ lệ bản đồ (map scale)
Tỷ lệ bản đồ thường được hiểu là tỷ lệ độ dài của một đường trên bản đồ và độ dài thực của nó trên thực địa. Trên bình đồ biểu thị một khu vực nhỏ của bề mặt trái đất, ảnh hưởng của độ cong trái đất trên bản đồ là không đáng kể nên tỷ lệ trên toàn bản đồ là như nhau. Trên bản đồ những khu vực lớn hơn, độ cong của trái đất gây nên sự biến dạng trong biểu thị các các đối tượng nên tỷ lệ bản đồ là đại lượng thay đổi từ điểm này sang điểm khác hay thậm chí trên cùng một điểm cũng thay đổi theo các hướng khác nhau. Tỷ lệ chính của bản đồ (được ghi trên bản đồ) được bảo toàn ở một số điểm và một số hướng tuỳ thuộc vào phép chiếu. Ta hiểu tỷ lệ của bản đồ là mức độ thu nhỏ của bề mặt trái đất khi biểu diễn lên bản đồ. Tỉ lệ bản đồ nói lên mức độ chi tiết các thành phần có thể biểu hiện được trên bản đồ và kích thước các chi tiết có thể đo đạc được tương ứng với điều kiện ngoài thực tế.
Tỉ lệ bản đồ có thể được biểu hiện như là một đơn vị đo đạc và chuyển đổi, thí dụ như ở tỉ lệ 1/24.000, 1 cm trên bản đồ tương ứng với 24.000 cm ngoài thực tế hoặc 24 m. Một bản đồ có tỉ lệ là 1/10.000 sẽ bao phủ một vùng rộng lớn hơn bản đồ ở tỉ lệ 1/24.000, tuy nhiên bản đồ có tỉ lệ lớn sẽ chứa các đặc điểm chi tiết hơn bản đồ có tỉ lệ nhỏ.
1.1.3.2. Cơ sở trắc địa – thiên văn của bản đồ
Được đặc trưng bởi hình Elipxoit và hệ thống toạ độ trắc địa khởi điểm đã sử dụng để thành lập bản đồ. Cơ sở trắc địa - thiên văn được thể hiện bằng các điểm khống chế, các điểm khống chế là những điểm đã được cố định trên thực địa và được xác định toạ độ. Những điểm khống chế này được sử dụng khi thành lập bản đồ tỷ lệ lớn để xác định đúng vị trí các yếu tố nội dung của bản đồ
- Geoid là gì?
Bề mặt tự nhiên của trái đất rất phức tạp về mặt hình học không thể biểu thị nó bởi một qui luật nhất định nào. Trong trắc địa bề mặt tự nhiên trái đất được thay thế bằng mặt Geoid. Mặt Geoid là mặt nước biển trung bình yên tĩnh trải rộng xuyên qua lục địa và luôn vuông góc với các hướng dây dọi. Tuy được định nghĩa đơn giản như vậy song do sự phân bố không đồng đều của các khối vật chất trong vỏ quả đất làm biến đổi hướng trọng lực, nên bề mặt Geoid có dạng phức tạp về mặt hình học.
- Bề mặt Elipxoid quay của trái đất
Trong thực tiễn trắc địa bản đồ, người ta lấy mặt Elipxoid quay có hình dạng kích thước gần giống Geoid làm bề mặt toán học thay cho Geoid. Elipxoid có khối lượng bằng khối lượng Geoid, tâm trùng với trọng tâm của trái đất, mặt phẳng xích đạo trùng với mặt phẳng xích đạo trái đất.
Kích thước của Elipxoid trái đất được tính theo tài liệu đo đạc trắc địa, thiên văn và trọng lực. Ngoài việc xác định kích thước của Elipxoid thay cho Geoid, cần phải đặt đúng Elipxoid ở thể trái đất gọi là định hướng Elipxoid. Định hướng Elipxoid khác nhau dẫn đến sự khác nhau về toạ độ của một điểm khi tính toạ độ từ những góc khác nhau. Kích thước và định hướng elipxoid được xác định khác nhau trên thế giới gây nên sự phức tạp trong sử dụng tài liệu trắc địa - bản đồ.
Các nguồn tài liệu trắc địa - bản đồ ở Việt Nam:
Bản đồ do Pháp thành lập trước năm 1954 chủ yếu sử dụng Elipxoid Cbamie 1880.
Bản đồ sau năm 1954 sử dụng Elipxoid Krassobsk, lưới chiếu Gauss, Kruger.
Bản đồ do người Mỹ thành lập trước năm 1975, lưới chiếu UTM, Elipxoid, Everest, 1830
Bản đồ UTM là nguồn tài liệu phong phú, đặc biệt đối với các vùng núi và cao nguyên hiểm trở. Thường được thành lập bằng phương pháp chụp ảnh máy bay.
1.1.3.3. Hệ toạ độ
Các toạ độ trên bề mặt trái đất là Vĩ độ (latitude), được đo theo đơn vị độ Bắc hoặc Nam của xích đạo. Kinh độ (longtitude), được đo theo đơn vị độ Tây hoặc Đông của kinh độ Greenweek ở Anh. Vị trí của kinh độ và vĩ độ thực tế chỉ có tính cách tương đối, khoảng cách và diện tích phải được tính toán bằng việc dùng phương pháp tính toán địa lý không gian và bán kính của trái đất đến các điểm cần tính.Về mặt ứng dụng, vĩ độ và kinh độ thường được sử dụng trong việc mô tả các vùng đất chính.
- Hệ toạ độ địa lý
Các giao điểm của bán trục nhỏ với mặt Elipxoid trái đất được gọi là các cực Bắc và Nam. Các vòng tròn tạo ra do các mặt phẳng thẳng góc với trục nhỏ và cắt Elipxoid gọi là các vĩ tuyến. Vĩ tuyến lớn nhất nằm trên mặt phẳng đi qua tâm Elipxoid gọi là đường xích đạo. Bán kính đường xích đạo = a.
Các giao tuyến của các mặt phẳng Elipxoid với các mặt phẳng đi qua trục quay là những Elipxoid bằng nhau và còn gọi là các kinh tuyến.Vị trí của các điểm trên mặt Elipxoid trái đất hoặc mặt cầu xác định bằng tọa độ địa lý là vĩ độ và kinh độ. Qua bất kỳ một điểm nào đó trên bề mặt Elipxoid kẻ một đường thẳng đứng (pháp tuyến) hướng vào trong Elipxoid khi cắt mặt phẳng xích đạo, đường pháp tuyến tạo với nó một góc, đó chính là vĩ độ địa lý, được tính từ xích đạo, nhận giá trị từ 0 đến 900 lê bắc ký hiệu là N, hoặc Nam là S.
Góc giữa các mặt phẳng kinh tuyến đi qua một điểm cho trước và mặt phẳng của kinh tuyến Gốc gọi là kịnh độ địa lý. Kinh độ tính từ kinh tuyến gốc (kinh tuyến Greenwich) sang đông đến 180o là dương (E), kinh tuyến gốc sang tây đến 180o (W).
1.2. Các hệ quy chiếu bản đồ (Map Projection)
1.2.1. Lưới chiếu bản đồ (lưới kinh vĩ tuyến)
Lưới kinh vĩ tuyến chính là sự thể hiện trực quan của phép chiếu bản đồ.
1.2.1.1. Phép chiếu bản đồ
Khoảng cách giữa các điểm, diện tích, hình dạng các khu vực trên trái đất khi biểu thị lên mặt phẳng không tránh khỏi sự biến dạng, sai số. Sự phân bố độ lớn của các sai số này rất là khác nhau, phụ thuộc vào độ lớn của lãnh thổ được biểu thị và vị trí của chúng trong hệ toạ độ được sử dụng chia nhỏ bề mặt nghiên cứu sẽ giảm phần nào các sai số trên. Để biểu thị bề mặt Elipxoid lên mặt phẳng người ta sử dụng phép chiếu bản đồ. Phép chiếu bản đồ xác định sự tương ứng giữa bề mặt Elipxoid và mặt phẳng có nghĩa là mỗi điểm trên bề mặt Elipxoid quay có toạ độ tương ứng với một điểm duy nhất trên mặt phẳng với toạ độ vuông góc X,Y. Lưới chiếu bản đồ là cơ sở toán học để phân bố chính xác các yếu tố nội dung bản đồ.
Hình 3 : Phép chiếu bản đồ
1.2.1.2. Các phép chiếu hình và lưới chiếu hình
Phân loại theo tính chất biểu diễn và hình dạng lưới kinh vĩ tuyến
Phép chiếu giữ góc là phép chiếu trong đó góc được biểu diễn không có sai số
Phép chiếu giữ diện tích
Phép chiếu giữ độ dài theo một hướng nhất định
Phép chiếu tự do
Phân loại theo mặt phẳng phụ trợ được sử dụng
Hình nón
Hình trụ
Phương vị
Lưới chiếu bản đồ là cơ sở toán học để phân bố chính xác các yếu tố nội dung bản đồ. Việc trải mặt cầu lên mặt phẳng bằng các phương pháp chiếu hình bản đồ cơ bản là
Hình 4 : Các lưới chiếu hình ống, nón, phương vị
Hình 5 : Chiếu hình ở khu vực xích đạo, vùng cực và vùng vĩ độ
Trong các phép chiếu này mặt hình ống, mặt hình nón và mặt phẳng là những bề mặt hỗ trợ. Nếu nguồn sáng ở tâm trái đất chiếu hắt mạng lưới kinh vĩ tuyến lên các bề mặt phụ này, thì ta nhận ra các dấu hiệu riêng của mỗi loại chiếu hình như sau:
Phép chiếu hình trụ
Kinh tuyến là những đường song song thẳng đứng, vĩ tuyến là những đường song song nằm ngang và vuông góc với kinh tuyến. Dọc theo đường xích đạo tiếp xúc với mặt phẳng hình ống không có biến dạng trên bản đồ, càng xa đường tiếp xúc về phía hai cực, sai số càng lớn.
Hình 6: Phép chiếu hình trụ được hiển thị dưới dạng mặt phẳng
Phép chiếu hình nón
Kinh tuyến là chùm đường thẳng giao nhau tại đỉnh hình quạt, vĩ tuyến là những cung tròn đồng tâm tại đỉnh hình quạt. Dọc theo vĩ tuyến tiếp xúc với mặt nón không có biến dạng trên bản đồ. Càng ra xa vĩ tuyến tiếp xúc theo chiều kinh tuyến, sai số càng lớn.
Hình 7: Phép chiếu hình nón được hiển thị dưới dạng mặt phẳng
Phép chiếu hình phương vị
Nếu mặt phẳng tiếp xúc với mặt cầu tại cực, thì kinh tuyến là chùm đường thẳng giao nhau tại điểm cực, vĩ tuyến là những đường tròn lấy điểm cực làm tâm. Tại điểm cực không có sai số chiếu hình, càng xa cực sai số càng lớn.
Hình 8 : Phép chiếu hình phương vị được hiển thị dưới dạng mặt phẳng
Đây là 3 loại lưới chiếu hình cơ bản, phân theo phương pháp chiếu hình. Muốn xây dựng bản đồ một khu vực hoặc thế giới, ta căn cứ vào vị trí địa lý, đặc điểm hình học và kích thước to nhỏ của khu vực thiết kế bản đồ, căn cứ vào bố cục bản đồ mà chọn một trong những phương pháp chiếu đồ giữ góc, giữ diện tích, giữ chiều dài.. Các bản đồ xuất bản thông thường chúng ta dùng lưới chiếu giữ hình dạng, đối với các mục đích nghiên cứu thường dùng lưới chiếu giữ diện tích.Việc phân loại chỉ là tương đối, hiện nay chúng ta đang áp dụng rộng rãi các phương pháp giải tích toán học để tính toán các phép chiếu mới có dạng lưới chuẩn. Tuỳ thuộc vào độ lớn, hình dạng, vị trí của lãnh thổ, tỷ lệ bản đồ và mục đích sử dụng, người ta cho phép những phép chiếu khác nhau. Khi sử dụng tài liệu bản đồ phải biết rõ về phép chiếu được dùng để thành lập bản đồ. Khi dùng bản đồ để thiết kế, đo đạc, ta phải biết rõ về tính chất các sai số đặc trưng của phép chiếu và đặc điểm phân bố để có thể tính toán hiệu chỉnh kết quả đo đạc, xác định vị trí các đối tượng trong thực tế. Muốn vậy người ta nghiên cứu dạng lưới bản đồ, sự định hướng, sự biểu thị cực xích đạo và lưới kinh vĩ tuyến, xác định bằng phương pháp gần đúng sai số biểu thị góc, diện tích và khoảng cách. Khi dùng bản đồ để làm tài liệu thành lập bản đồ khác cần phải biết đích xác về phép chiếu bản đồ để có thể thực hiện các phép chuyển đổi các đối tượng sang hệ toạ độ của bản đồ thành lập.
1.2.2. Bố cục bản đồ
Là sự bố trí khu vực được thành lập bản đồ trên bản đồ, xác định khung của nó, sắp xếp những yếu tố trình bày ngoài khung và những tư liệu bổ sung. Các bản đồ địa hình bao giờ cũng định hướng kinh tuyến giữa theo B-N. Trong khung biểu thị khu vực được thành lập liên tục và không lập lại. Bố trí tên bản đồ, số hiệu mảnh, tỷ lệ, các tài liệu tra cứu và giải thích ... dựa theo mẫu qui định. Đối với các bản đồ chuyên đề, trong khung bản đồ có thể bố trí bản chú thích, tài liệu tra cứu, đồ thị, bản đồ phụ ... Tên bản đồ, tỷ lệ ... cũng có thể đặt ở trong khung.
1.3. Các phương pháp biểu thị hiện tượng trên bản đồ
Khi thành lập bản đồ - bản đồ chuyên đề người ta sử dụng các phương pháp khác nhau để thể hiện các yếu tố nội dung. Mỗi phương pháp có thể sử dụng độc lập hoặc sử dụng phối hợp với các phương pháp khác, các phương pháp bản đồ được xây dựng căn cứ vào đặc điểm của hiện tượng, sự vật và đặc điểm phân bố của chúng trong khu vực.
1.3.1. Phương pháp đường đẳng trị
Dùng trong trường hợp cần biểu thị trên bản đồ các hiện tượng có sự thay đổi đều đặn và có sự phân bố liên tục như: Độ cao mặt đất, nhiệt độ không khí, lượng mưa... Đường đẳng trị là những đường cong điều hoà nối liền các điểm có cùng trị số của hiện tượng. Sự vật được thể hiện tuỳ theo hiện tượng, sự vật được biểu thị mà đường đẳng trị có thể có các tên gọi riêng.
- Đường đẳng cao (bình độ, đồng mức) nối liền các điểm có toạ độ cao tuyệt đối tương đối giống nhau
- Đường đẳng sâu
- Đường đẳng áp
Để xây dựng đường đẳng trị cần phải có đủ số lượng để các điểm trên bản đồ có giá trị hoặc chỉ số được xác định. Nối liền các điểm có giá trị như nhau. Kết hợp với phương pháp nội suy, ngoại suy bằng những đường cong đều đặn ta có các đường đẳng trị. Giá trị của các đường đẳng trị được ghi ở đầu hoặc ở giữa đường; đôi khi người ta tô màu vào khoảng giữa các đường đẳng trị. Phương pháp đường đẳng trị cho phép ta xác định chỉ số của hiện tượng được biểu thị ở bất kỳ điểm nào trên bản đồ. Dựa theo sự phân bố các đường đẳng trị ta có thể nghiên cứu đặc điểm và các qui luật phân bố biến đổi của hiện tượng. Điều này rất rõ với trường hợp các đường đẳng cao, đẳng sâu. Bản đồ xây dựng theo phương pháp đẳng trị cho phép ta tái hiện lại bề mặt thực tế hoặc trừu tượng của hiện tượng, thực hiện các phép đo đạc, nghiên cứu chi tiết với độ chính xác cao.
1.3.2. Phương pháp chấm điểm
Dùng để biểu thị các hiện tượng phân bố rải rác trên lãnh thổ bằng cách sử dụng các điểm tròn kích thước như nhau, và đại diện cho một số giá trị số lượng của các hiện tượng biểu thị, giá trị đó gọi là trọng lượng của các điểm. Các điểm được đặt lên bản đồ sẽ có sự phân bố không đồng đều và có mật độ khác nhau tương ứng với sự phân bố thực của hiện tượng, sự phản ánh đúng đắn sự phân bố của các đối tượng bằng phương pháp điểm chỉ có thể đạt được nếu trên lãnh thổ tiến hành thống kê hiện tượng theo những đơn vị đủ nhỏ. Khi đó điều quan trọng là phải lựa chọn chính xác kích thước điểm và định ra giá trị cho nó, cần phải chọn kích thước điểm sao cho nơi đối tượng phân bố dày đặc nhất là các điểm không chồng chéo lên nhau. Có thể sử dụng các điểm có màu sắc khác nhau để thể hiện các đặc trưng phụ thuộc, đặc trưng chất lượng của đối tượng, phương pháp chấm điểm sử dụng thành lập bản đồ dân cư, phân bố diện tích trồng trọt, ...
1.3.3. Phương pháp ký hiệu đường
Dùng để thể hiện các hiện tượng và các đối tượng có dạng đường nét và những đối tượng có dạng kéo dài mà chiều rộng không thể hiện theo tỷ lệ bản đồ.
Ví dụ: Các đường ranh giới, đường phân thuỷ, đứt gãy kiến tạo, đường giao thông sông một nét...
Các đặc trưng chất lượng, số lượng của đối tượng được truyền đạt bằng hình vẽ, màu sắc, cấu trúc, độ rộng của ký hiệu nét.
1.3.4. Phương pháp ký hiệu đường chuyển động
Phương pháp dùng để thể hiện những sự chuyển dịch khác nhau trong không gian, ví dụ di chuyển trên lãnh thổ của một hiện tượng nào đó, như hướng gió, sự vận chuyển hàng hoá, dòng biển hướng di cư của các loài động vật ... Phương tiện truyền đạt thông tin thông thường là các mũi tên và các dãy, các đặc trưng chất lượng và số lượng được thể hiện thông qua hình dạng, cấu trúc, màu sắc và kích thước của ký hiệu. Hướng của các mũi tên chỉ hướng chuyển động, các ký hiệu đường chuyển động có thể mô tả chính xác hoặc mang tính chất sơ lược đường đi của chuyển động.
1.3.5. Phương pháp biểu đồ định vị
Dùng để thể hiện những hiện tượng biến đổi theo mùa hoặc có tính chất chu kỳ. Phương pháp biểu đồ định vị có khả năng thể hiện tiến trình, độ lớn, tính liên tục và tần xuất của hiện tượng. Ví dụ sự thay đổi trong năm của nhiệt độ không khí, lượng mưa, sự phân bố dòng chảy hàng năm của sông ngòi, hướng gió và sức gió tại các trạm bằng các biểu đồ, đồ thị được định vị.
1.3.6. Phương pháp ký hiệu
Là phương pháp dùng các ký hiệu ngoài tỷ lệ để thể hiện các đối tượng để được xác định tại các điểm hoặc có kích thước không thể hiện được trên bản đồ hoặc diện tích của nó trên bản đồ nhỏ hơn diện tích của ký hiệu. Phương pháp ký hiệu có khả năng truyền đạt được các đặc trưng chất lượng, số lượng, cấu trúc, sự phát triển của các đối tượng và hiện tượng.
Các ký hiệu có thể phân ra làm 3 loại:
- Ký hiệu hình học: Có dạng hình học đơn giản (vuông, tam giác, tròn) được phân biệt bằng hình dạng, kích thước, màu sắc, cấu trúc, định hướng. Ký hiệu hình học đơn giản dễ nhận biết và xác định vị trí , có nhiều khả năng truyền đạt thông tin.
- Ký hiệu chữ: Ký hiệu gồm một, hai chữ cái đầu tiên tên gọi của đối tượng hoặc hiện tượng thường dùng để thể hiện các mỏ khoáng sản, các ký hiệu chữ dễ hiểu, dễ nhớ nhưng khó thể hiện chính xác vị trí của đối tượng thường được kết hợp với ký hiệu hình học.
- Ký hiệu trực quan: có dạng gợi cho ta liên tưởng đến đối tượng được biểu thị.
1.3.7. Phương pháp biểu đồ
Đó là phương pháp biểu thị các giá trị số lượng tuyệt đối của các sự vật hiện tượng trong từng đơn vị phân chia lãnh thổ thông qua các hình vẽ biểu đồ trong từng đơn vị phân chia đó. Có các dạng biểu đồ sau: vuông, tròn, biểu đồ cột. Tài liệu để thành lập bản đồ là số liệu thống kê. Phương pháp biểu đồ biểu thị được độ lớn, cấu trúc và trạng thái của hiện tượng.
Chương 2: GIS - Hệ thống thông tin địa lý
2.1 Khái niệm hệ thống thông tin địa lý
2.1.1 Định nghĩa GIS
Định nghĩa GIS:
G: Geographic - dữ liệu không gian thể hiện vị trí, hình dạng (điểm, đường, vùng)
I : Information - thuộc tính, không thể hiện vị trí (như mô tả bằng văn bản, số, tên...)
S: System - Sự liên kết bên trong giữa các thành phần khác nhau (phần cứng, phần mềm)
Là một tập hợp của các phần cứng, phần mềm máy tính cùng với các thông tin địa lý (mô tả không gian). Tập hợp này được thiết kế để có thể thu thập, lưu trữ, cập nhật, thao tác, phân tích, thể hiện tất cả các hình thức thông tin mang tính không gian.
GIS là một hệ thống máy tính có khả năng lưu trữ và sử dụng dữ liệu mô tả các vị trí (nơi) trên bề mặt trái đất, 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.
Một hệ thống được gọi là GIS nếu nó có các công cụ hỗ trợ cho việc thao tác với dữ liệu không gian - Cơ sở dữ liệu GIS là sự tổng hợp có cấu trúc các dữ liệu số hóa không gian và phi không gian về các đối tượng bản đồ, mối liên hệ giữa các đối tượng không gian và các tính chất của một vùng của đối tượng
Công nghệ GIS kết hợp các thao tác cơ sở dữ liệu thông thường và 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.GIS đang có bước chuyển từ cách tiếp cận cơ sở dữ liệu sang hướng tri thức.Tóm lại, hệ thống thông tin địa lý là một hệ thống phần mềm máy tính được sử dụng trong việc vẽ bản đồ, phân tích các vật thể, hiện tượng tồn tại trên trái đất. Công nghệ GIS tổng hợp các chức năng chung về quản lý dữ liệu như hỏi đáp và phân tích thống kê với sự thể hiện trực quan và phân tích các vật thể hiện tượng không gian trong bản đồ. Sự khác biệt giữa GIS và các hệ thống thông tin thông thường là tính ứng dụng của nó rất rộng trong việc giải thích hiện tượng, dự báo và qui hoạch chiến lược.
2.1.2 Các thành phần của GIS
Hệ thống GIS bao gồm 5 hợp phần cơ bản là:
Thiết bị (Hardware)
Phần mềm (Software)
Số liệu (Geographic data
Chuyên viên (Expertise)
Chính sách và cách thức quản lý
2.1.2.1. Thiết bị (Hardware)
Bộ xử lý trung tâm
Bộ nhớ trong (RAM)
Bộ xắp xếp và lưu trữ ngoài
2.1.2.2. Phần mềm
Là tập hợp các câu lệnh, chỉ thị nhằm điều khiển phần cứng của máy tính thực hiện một nhiệm vụ xác định, phần mềm hệ thống thông tin địa lý có thể là một hoặc tổ hợp các phần mềm máy tính. Phần mềm được sử dụng trong kỹ thuật GIS phải bao gồm các tính năng cơ bản sau:
Nhập và kiểm tra dữ liệu (Data input): 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 (Geographic database): Lưu trữ và quản lý cơ sở dữ liệu đề cập đến phương pháp kết nối thông tin vị trí và thông tin thuộc tính của các đối tượng địa lý (điểm, đường đại diện cho các đối tượng trên bề mặt trái đất). Hai thông tin này được tổ chức và liên hệ qua các thao tác trên máy tính và sao cho chúng có thể lĩnh hội được bởi người sử dụng hệ thống.
Xuất dữ liệu (Display and reporting): 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ẽ.
Biến đổi dữ liệu (Data transformation): 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à thông tin 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 (Query input): 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 lưu trữ, xử lý, quản lý các thông tin địa lý được sử dụng phổ biến hiện nay là ARC/INFO, MAPINFO, WINGIS,...
2.1.2.3. Chuyên viên
Đây là một trong những phần quan trọng của công nghệ GIS, đòi hỏi những chuyên viên hướng dẫn sử dụng hệ thống để thực hiện các chức năng phân tích và xử lý các số liệu. Đòi hỏi phải thông thạo về việc lựa chọn các công cụ GIS để sử dụng, có kiến thức về các số liệu đang được sử dụng và thông hiểu các tiến trình đang và sẽ thực hiện.
2.1.2.4. Dữ liệu địa lý (Geographic data)
Số liệu được sử dụng trong GIS không chỉ là số liệu địa lý riêng lẻ mà còn phải được thiết kế trong một cơ sở dữ liệu. Những thông tin địa lý có nghĩa là sẽ bao gồm các dữ kiện về vị trí địa lý, thuộc tính của thông tin, mối liên hệ không gian của các thông tin, và thời gian. Có 2 dạng số liệu được sử dụng trong kỹ thuật GIS là:
Cơ sở dữ liệu bản đồ: 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. 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ẽ.
- Số liệu Vector: được trình bày dưới dạng điểm, đường và diện tích, mỗi dạng có liên quan đến 1 số liệu thuộc tính được lưu trữ trong cơ sở dữ liệu.
- Số liệu Raster: được trình bày dưới dạng lưới ô vuông hay ô chữ nhật đều nhau, giá trị được ấn định cho mỗi ô sẽ chỉ định giá trị của thuộc tính. Số liệu của ảnh Vệ tinh và số liệu bản đổ được quét là các loại số liệu Raster.
Số liệu thuộc tính (Attribute): đượ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ý.Trong các dạng số liệu trên, số liệu Vector là dạng thường sử dụng nhất. Tuy nhiên, số liệu Raster rất hữu ích để mô tả các dãy số liệu có tính liên tục như: nhiệt độ, cao độ...và thực hiện các phân tích không gian của số liệu. Còn số liệu thuộc tính được dùng để mô tả cơ sở dữ liệu. Có nhiều cách để nhập số liệu, nhưng cách thông thường nhất hiện nay là số hoá bằng bàn số hoá hoặc thông qua việc sử dụng máy quét ảnh.
2.1.2.5. Chính sách và quản lý
Hệ thống GIS cần được điều hành bởi một bộ phận quản lý, bộ phận này phải được bổ nhiệm để tổ chức hoạt động hệ thống GIS một cách có hiệu quả để phục vụ người sử dụng thông tin. Để hoạt động thành công, hệ thống GIS phải được đặt trong 1 khung tổ chức phù hợp và có những hướng dẫn cần thiết để quản lý, thu thập, lưu trữ và phân tích số liệu, đồng thời có khả năng phát triển được hệ thống GIS theo nhu cầu. Hệ thống GIS cần được điều hành bởi 1 bộ phận quản lý, bộ phận này phải được bổ nhiệm để tổ chức hoạt động hệ thống GIS một cách có hiệu quả để phục vụ người sử dụng thông tin.
2.2. Dữ liệu trong GIS
2.2.1. Các dạng dữ liệu GIS
Một cơ sở dữ liệu của hệ thống thông tin địa lý có thể chia ra làm 2 loại số liệu cơ bản: số liệu không gian và phi không gian. Mỗi loại có những đặc điểm riêng và chúng khác nhau về yêu cầu lưu giữ số liệu, hiệu quả, xử lý và hiển thị.
Số liệu không gian là những mô tả số của hình ảnh bản đồ, chúng bao gồm toạ độ, quy luật và các ký hiệu dùng để xác định một hình ảnh bản đồ cụ thể trên từng bản đồ. Hệ thống thông tin địa lý dùng các số liệu không gian để tạo ra một bản đồ hay hình ảnh bản đồ trên màn hình hoặc trên giấy thông qua thiết bị ngoại vi, …
Số liệu phi không gian là những diễn tả đặc tính, số lượng, mối quan hệ của các hình ảnh bản đồ với vị trí địa lý của chúng. Các số liệu phi không gian được gọi là dữ liệu thuộc tính, chúng liên quan đến vị trí địa lý hoặc các đối tượng không gian và liên kết chặt chẽ với chúng trong hệ thống thông tin địa lý thông qua một cơ chế thống nhất chung.
2.2.2 Mô hình thông tin không gian
Dữ liệu là trung tâm của hệ thống GIS, hệ thống GIS chứa càng nhiều thì chúng càng có ý nghĩa. Dữ liệu của hệ GIS được lưu trữ trong CSDL và chúng được thu thập thông qua các mô hình thế giới thực. Dữ liệu trong hệ GIS còn được gọi là thông tin không gian. Đặc trưng thông tin không gian là có khả năng mô tả vật thể ở đâu nhờ vị trí tham chiếu, đơn vị đo và quan hệ không gian. Chúng còn khả năng mô tả hình dạng hiện tượng thông qua mô tả chất lượng, số lượng của hình dạng và cấu trúc. Cuối cùng, đặc trưng thông tin không gian mô tả quan hệ và tương tác giữa các hiện tượng tự nhiên. Mô hình không gian đặc biệt quan trọng vì cách thức thông tin sẽ ảnh hưởng đến khả năng thực hiện phân tích dữ liệu và khả năng hiển thị đồ hoạ của hệ thống.
2.2.2.1. Hệ thống vector
Các đối tượng không gian khi biểu diễn ở cấu trúc dữ liệu vector được tổ chức dưới dạng điểm (point), đường (line) và vùng (polygon) và được biểu diễn trên một hệ thống tọa độ nào đó. Đối với các đối tượng biểu diễn trên mặt phẳng, mỗi đối tượng điểm được biểu diễn bởi một cặp tọa độ (x, y); đối tượng đường được xác định bởi một chuỗi liên tiếp các điểm (vertex), đoạn thẳng được nối giữa các điểm (vertex) hay còn gọi là cạnh (segment), điểm bắt đầu và điểm kết thúc của một đường gọi là các nút (node); đối tượng vùng được xác định bởi các đường khép kín.
Hình 9: Đối tượng đường gồm các nút điểm cạnh
Hai loại cấu trúc được biết đến trong cấu trúc dữ liệu vector là cấu trúc Spaghetti và cấu trúc Topology. Cấu trúc Spaghetti ra đời trước và được sử dụng cho đến ngày nay ở một số các phần mềm GIS như: phần mềm Arcview GIS, ArcGIS, MapInfo,… Cấu trúc Topology ra đời trên nền tảng của mô hình dữ liệu cung – nút (Arc - Node).
- Mô hình dữ liệu vector spaghetti
Trong cấu trúc dữ liệu Spaghetti, đơn vị cơ sở là các cặp tọa độ trên một không gian địa lý xác định. Do đó, mỗi đối tượng điểm được xác định bằng một cặp tọa độ (x, y); mỗi đối tượng đường được biểu diễn bằng một chuỗi những cặp tọa độ (xi, yi); mỗi đối tượng vùng được biểu diễn bằng một chuỗi những cặp toạ độ (xj, yj) với điểm đầu và điểm cuối trùng nhau.
:
Hình 10: Biểu diễn điểm
Hình 11: Biểu diễn đường
Hình 12: Biểu diễn vùng
Mô hình dữ liệu vector spaghetti không mô tả được mối quan hệ không gian giữa các đối tượng, vì thế các phép phân tích, tính toán không gian đều thực hiện khó khăn. Đối với dữ liệu dạng vùng, đường ranh giới giữa 2 vùng được ghi nhận 2 lần, mỗi lần cho một vùng. Mô hình này có ưu điểm là dễ trình bày, biên tập. Phần mềm điển hình là MapInfo.
- Mô hình dữ liệu vector Topology
Cấu trúc Topology còn được gọi là cấu trúc cung – nút (arc - node). Cấu trúc này được xây dựng trên mô hình cung – nút, trong đó cung là phần tử cơ sở. Việc xác định các phần tử không gian dựa trên các định nghĩa sau:
Mỗi cung được xác định bởi 2 nút, các phần tử ở giữa 2 nút là các điểm điều khiển (vertex), các điểm này xác định hình dạng của cung.
Các cung giao nhau tại các nút, kết thúc một cung là nút.
Vùng là tập hợp các cung khép kín, trong trường hợp vùng trong vùng thì phải có sự phân biệt giữa cung bên trong và cung bên ngoài.
Trong cấu trúc Topology, các đối tượng không gian được mô tả trong bốn bảng dữ liệu: bảng tọa độ cung, bảng topology cung, bảng topology nút và bảng topology vùng. Giữa các bảng này có quan hệ với nhau thông qua cung. Từ đây, ta có thể phân tích các quan hệ của các đối tượng không gian trên cùng một hệ tọa độ.
Hình 13: Dữ liệu topology vector
Topology vùng
Vùng
Cung
a
AB,AaB
B
AB,AbB
Vùng ngoài a và b
Ngoài
Topology cung
Cung
Nút đầu
Nút cuối
Vùng trái
Vùng phải
AB
A
B
A
B
AaB
A
B
Vùng ngoài
A
Aba
A
B
b
Vùng ngoài
Topology nút
Nút
Cung
A
AB,AaB
B
AB,AbB
Dữ liệu tọa độ cung
Cung
Nút đầu (x,y)
Đỉnh vertex(x,y)
Nút cuối (x,y)
AB
A
B
AaB
A
a1, a2, a3, a4, a5
B
AbB
A
b1, b2, b3
B
2.2.2.2. Hệ thống raster
Mô hình dữ liệu dạng raster phản ánh toàn bộ vùng nghiên cứu dưới dạng một lưới các ô vuông hay điểm ảnh (pixcel). Mô hình raster có các đặc điểm:
Các điểm được xếp liên tiếp từ trái qua phải và từ trên xuống dưới
Mỗi một điêm ảnh (pixel) chứa một giá trị
Một tập các ma trận điểm và các giá trị tương ứng tạo thành một lớp (layer)
Trong cơ sở dữ liệu có thể có nhiều lớp
Hình 14: Mô hình dữ liệu raster và vector
Mô hình dữ liệu raster là mô hình dữ liệu GIS được dùng tương đối phổ biến trong các bài toán về môi trường, quản lý tài nguyên thiên nhiên. Mô hình dữ liệu raster chủ yếu dùng để phản ánh các đối tượng dạng vùng là ứng dụng cho các bài toán tiến hành trên các loại đối tượng dạng vùng: phân loại, chồng xếp.
Các nguồn dữ liệu xây dựng nên dữ liệu raster có thể bao gồm:
Quét ảnh
Ảnh máy bay, ảnh viễn thám
Chuyển từ dữ liệu vector sang
Lưu trữ dữ liệu dạng raster
Nén theo hàng (Run lengh coding)
Nén theo chia nhỏ từng phần (Quadtree)
Nén theo ngữ cảnh (Fractal)
Trong một hệ thống dữ liệu cơ bản raster được lưu trữ trong các ô hình vuông được sắp xếp trong một mảng hoặc các dãy hàng và cột. Nếu có thể, các hàng và cột nên được căn cứ vào hệ thống lưới bản đồ thích hợp. Việc sử dụng cấu trúc dữ liệu raster tất nhiên đưa đến một số chi tiết bị mất. Với lý do này, hệ thống raster-based không được sử dụng trong các trường hợp nơi có các chi tiết có chất lượng cao được đòi hỏi.
Hình 15: Dữ liệu vector
Vị trí của mỗi pixel được xác định bởi số hàng và số cột. Giá trị được gán vào pixel tượng trưng cho một thuộc tính mà nó thể hiện. Hình ảnh thể hiện càng rõ khi kích thước của pixel hay ô lưới càng nhỏ. Thông số này được gọi là độ tương phản. Ảnh có độ tương phản càng cao thì kích thước càng tăng.
Xây dựng cơ sở dữ liệu Raster
Mỗi pixel là một đối tượng, có vị trí theo hàng, cột tương ứng trên ảnh, giá trị của pixel cho biết pixel đó thuộc đố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 ương ứng.
Trong cấu trúc raster:
Đường được biểu diễn bằng những pixel có cùng giá trị f(x,y) liên tiếp nhau.
Vùng được xác định thành một mạng gồm nhiều pixel có cùng giá trị thuộc tính f(x,y).
Hình 16: Cấu trúc dữ liệu Raster
Cấu trúc lưu trữ raster cơ bản:
Cấu trúc lưu mã chi tiết (exhaustive enumeration)
Cấu trúc lưu mã run length (run-length encoding).
Đối với cấu trúc lưu mã chi tiết, mỗi một điểm lưới được gắn với giá trị duy nhất, vì vậy dữ liệu không được nén gọn.
Hình 17: Cấu trúc mã chi tiết
Cấu trúc lưu mã chạy dài có ý nghĩa như là một kỹ thuật nén dữ liệu nếu raster chứa các nhóm điểm lưới có cùng một giá trị. Khi đó thay vì phải lưu trữ riêng cho từng điểm lưới, cấu trúc này lưu trữ theo từng thành phần có một giá trị duy nhất và số lượng điểm lưới chứa đựng giá trị đó.
Hình 18: Cấu trúc mã chạy dài run-length encoding
Cơ sở dữ liệu Raster có thể chứa hàng ngàn lớp. Kiểu giá trị của pixel 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ự alphabet. Để 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ố…
2.2.2.3. Chuyển đổi cơ sở dữ liệu dạng vector và raster
Việc chọn của cấu trúc dữ liệu dưới dạng vector hoặc raster tuỳ thuộc vào yêu cầu của người sử dụng, đối với hệ thống vector, thì dữ liệu được lưu trữ sẽ chiếm diện tích nhỏ hơn rất nhiều so với hệ thống raster, đồng thời các đường contour sẽ chính xác hơn hệ thống raster. Ngoài ra cũng tuỳ vào phần mềm máy tính đang sử dụng mà nó cho phép nên lưu trữ dữ liệu dưới dạng vector hay raster. Tuy nhiên đối với việc sử dụng ảnh vệ tinh trong GIS thì nhất thiết phải sử dụng dưới dạng raster.Một số công cụ phân tích của GIS phụ thuộc chặt chẽ vào mô hình dữ liệu raster, do vậy nó đòi hỏi quá trình biến đổi mô hình dữ liệu vector sang dữ liệu raster, hay còn gọi là raster hoá. Biến đổi từ raster sang mô hình vector, hay còn gọi là vector hoá, đặc biệt cần thiết khi tự động quét ảnh. Raster hoá là tiến trình chia đường hay vùng thành các ô vuông (pixcel). Ngược lại, vector hoá là tập hợp các pixcel để tạo thành đường hay vùng. Nét dữ liệu raster không có cấu trúc tốt, ví dụ ảnh vệ tinh thì việc nhận dạng đối tượng sẽ rất phức tạp. Nhiệm vụ biến đổi vector sang raster là tìm tập hợp các pixel trong không gian raster trùng khớp với vị trí của điểm, đường, đường cong hay đa giác trong biểu diễn vector. Tổng quát, tiến trình biến đổi là tiến trình xấp xỉ vì với vùng không gian cho trước thì mô hình raster sẽ chỉ có khả năng địa chỉ hoá các vị trí toạ độ nguyên. Trong mô hình vector, độ chính xác của điểm cuối vector được giới hạn bởi mật độ hệ thống toạ độ bản đồ còn vị trí khác của đoạn thẳng được xác định bởi hàm toán học.
Hình 19: Chuyển đổi vector sang raster
2.2.2.4. So sánh vector và raster
Hệ thống cơ sở dữ liệu Raster
Thuận lợi:
Vị trí địa lý của mỗi ô được xác định bởi vị trí của nó trong ô biểu tượng, hình ảnh có thể được lưu trữ trong một mảng tương xứng trong máy vi tính cung cấp đủ dữ liệu bất kỳ lúc nào. Vì vậy mỗi ô có thể nhanh chóng và dễ dàng được định địa chỉ trong máy theo vị trí địa lý của nó.
Những vị trí kế cận được hiện diện bởi các ô kế cận, vì vậy mối liên hệ giữa các ô có thể được phân tích một cách thuận tiện
Quá trình tính toán đơn giản hơn và dễ dàng hơn cơ sở hệ thống dữ liệu vector.
Đơn vị bản đồ ranh giới được trình bày một cách tự nhiên bởi giá trị ô khác nhau, khi giá trị thay đổi, việc chỉ định ranh giới thay đổi.
Nhược điểm:
Khả năng lưu trữ đòi hỏi lớn hơn nhiều so với hệ thống cơ sở dữ liệu vector.
Kích thước ô định rõ sự quyết định ở phương pháp đại diện. Điều này đặc biệt khó cân xứng với sự hiện diện đặc tính thuộc về đường thẳng.
Thể hiện bản đồ không rõ nét nếu độ tương phản thấp, độ tương phản cao thì tăng kích thước file ảnh
Hệ thống cơ sở dữ liệu Vector
Ưu điểm:
Việc lưu trữ đòi hỏi ít hơn hệ thống cơ sở dữ liệu raster
Bản đồ gốc có thể được hiện diện ở sự phân giải gốc của nó
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 và số hóa các bản đồ vẽ tay.
Nhược điểm:
Vị trí của điểm đỉnh cần được lưu trữ 1 cách rõ ràng
Thuật toán rất phức tạp
2.2.3. Mô hình thông tin thuộc tính
Số liệu phi không gian hay còn gọi là thuộc tính là những mô tả về đặc tính, đặc điểm và các hiện tượng xảy ra tại các vị trí địa lý xác định. Một trong các chức năng đặc biệt của công nghệ GIS là khả năng của nó trong việc liên kết và xử lý đồng thời giữa dữ liệu bản đồ và dữ liệu thuộc tính. Thông thường hệ thống thông tin địa lý có 4 loại số liệu thuộc tính:
Đặc tính của đối tượng: liên kết chặt chẽ với các thông tin không gian có thể thực hiện SQL (Structure Query Language) và phân tích.
Số liệu hiện tượng, tham khảo địa lý: miêu tả những thông tin, các hoạt động thuộc vị trí xác định.
Chỉ số địa lý: tên, địa chỉ, khối, phương hướng, định vị, … liên quan đến các đối tượng địa lý.
Quan hệ giữa các đối tượng trong không gian, có thể đơn giản hoặc phức tạp. Để mô tả một cách đầy đủ các đối tượng địa lý, trong bản đồ số chỉ dùng thêm các loại đối tượng khác: điểm điều khiển, toạ độ giới hạn và các thông tin mang tính chất mô tả.
Các thông tin mô tả có các đặc điểm:
Có thể nằm tại một vị trí xác định trên bản đồ
Có thể chạy dọc theo arc (đường)
Có thể có các kích thước, màu sắc, các kiểu chữ khác nhau
Nhiều mức của thông tin mô tả có thể được tạo ra với ứng dụng khác nhau
Có thể tạo thông tin cơ sở dữ liệu lưu trữ thuộc tính
Có thể tạo độc lập với các đối tượng địa lý có trong bản đồ
Không có liên kết với các đối tượng điểm, đường, vùng và dữ liệu thuộc tính của chúng
Bản chất một số thông tin dữ liệu thuộc tính như sau:
Số liệu tham khảo địa lý: mô tả các sự kiện hoặc hiện tượng xảy ra tại một vị trí xác định. Không giống các thông tin thuộc tính khác, chúng không mô tả về bản thân các hình ảnh bản đồ. Thay vào đó chúng mô tả các danh mục hoặc các hoạt động như cho phép xây dựng, báo cáo tai nạn, nghiên cứu y tế, … liên quan đến các vị trí địa lý xác định. Các thông tin tham khảo địa lý đặc trưng được lưu trữ và quản lý trong các file độc lập và hệ thống không thể trực tiếp tổng hợp chúng với các hình ảnh bản đồ trong cơ sở dữ liệu của hệ thống. Tuy nhiên các bản ghi này chứa các yếu tố xác định vị trí của sự kiện hay hiện tượng.
Chỉ số địa lý: được lưu trong hệ thống thông tin địa lý để chọn, liên kết và tra cứu số liệu trên cơ sở vị trí địa lý mà chúng đã được mô tả bằng các chỉ số địa lý xác định. Một chỉ số có thể bao gồm nhiều bộ xác định cho các thực thể địa lý sử dụng từ các cơ quan khác nhau như là lập danh sách các mã địa lý mà chúng xác định mối quan hệ không gian giữa các vị trí hoặc giữa các hình ảnh hay thực thể địa lý. Ví dụ: chỉ số địa lý về đường phố và địa chỉ địa lý liên quan đến phố đó.
Mối quan hệ không gian: của các thực thể tại vị trí địa lý cụ thể rất quan trọng cho các chức năng xử lý của hệ thống thông tin địa lý. Các mối quan hệ không gian có thể là mối quan hệ đơn giản hay lôgic, ví dụ tiếp theo số nhà 101 phải là số nhà 103 nếu là số nhà bên lẻ hoặc nếu là bên chẵn thì cả hai đều phải là các số chẵn kề nhau. Quan hệ Topology cũng là một quan hệ không gian. Các quan hệ không gian có thể được mã hoá như các thông tin thuộc tính hoặc ứng dụng thông qua giá trị toạ độ của các thực thể.
Mối quan hệ giữa dữ liệu không gian và phi không gian: thể hiện phương pháp chung để liên kết hai loại dữ liệu đó thông qua bộ xác định, lưu trữ đồng thời trong các thành phần không gian và phi không gian. Các bộ xác định có thể đơn giản là một số duy nhất liên tục, ngẫu nhiên hoặc các chỉ báo địa lý hay số liệu xác định vị trí lưu trữ chung. Bộ xác định cho một thực thể có thể chứa toạ độ phân bố của nó, số hiệu mảnh bản đồ, mô tả khu vực hoặc con trỏ đến vị trí lưu trữ của số liệu liên quan. Bộ xác định được lưu trữ cùng với các bản ghi toạ độ hoặc mô tả số khác của các hình ảnh không gian và cùng với các bản ghi số liệu thuộc tính liên quan.
Sự liên kết giữa hai loại thông tin cơ bản trong cơ sở dữ liệu GIS thể hiện theo sơ đồ sau:
Hình 20: Mối quan hệ giữa thông tin bản đồ và thông tin thuộc tính
2.3. WebGIS – Công nghệ GIS qua mạng
2.3.1. Giới thiệu WebGIS
WebGIS là hệ thống thông tin địa lý phân tán trên một mạng các máy tính để tích hợp, trao đổi các thông tin địa lý trên World Wilde Web. 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 Client-Server của Web. Xử lý thông tin địa lý được chia ra thành các nhiệm vụ ở phía server và phía client. Đ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 client tiêu biểu là trình duyệt web và server-side bao gồm một Web server có cung cấp một chương trình phần mềmWebGIS. Client thường yêu cầu một ảnh bản đồ hay vài xử lý thông tin địa lý qua Web đến server ở xa. Server 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 hay những hàm từ các plug-in hoặc Java applet. Server sau đó trả về kết quả cho client để hiển thị, hoặc gửi dữ liệu và các công cụ phân tích đến client để dùng ở phía client. 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 thứ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 platform 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.
2.3.2. Sơ đồ hoạt động của WebGIS
Hình 22: Sơ đồ hoạt động của WebGIS
Quá trình hoạt động của WebGIS được minh họa như hình vẽ trên.
Người dùng sử dụng trình duyệt web ở phía client
Client gửi yêu cầu của người sử dụng đến WebServer qua giao thức HTTP
Webserver nhận yêu cầu của người dùng, nếu là yêu cầu về bản đồ thì webserver sẽ chuyển tiếp nó đến ứng dụng server tương ứng ở đây là Mapserver
Mapserver sẽ nhận các yêu cầu cụ thể, gọi các hàm có liên quan để tính toán xử lý. Nếu có yêu cầu về dữ liệu Mapserver sẽ gửi yêu cầu tới cơ sở dữ liệu để lấy ra dữ liệu.
Data server dữ liệu tiến hành truy vấn lấy ra dữ liệu cần thiết và gửi lại cho Mapserver
Trong quá trình truy cập cơ sở dữ liệu, Mapserver thực thi tham chiếu đến tập tin cấu hình bản đồ (Map file). Dữ liệu lấy về được chuyển về WebServer tham chiếu đến tệp tin mẫu (html template) để tạo ra kết quả.
Kết quả sẽ được gửi về Client và hiển thị trên trình duyệt.
2.3.3. Tiềm năng của WebGIS
Khả năng phân phối thông tin địa lý rộng rãi trên toàn cầu
Người dùng internet có thể truy cập đến các ứng dụng GIS mà không phải mua phần mềm
Đối với phần lớn người dùng không có kinh nghiệm về GIS thì việc sử dụng WebGIS sẽ đơn giản hơn việc sử dụng các ứng dụng GIS khác.
2.3.4. Các kiến trúc triển khai WebGIS
Mô hình hoạt động của WebGIS được chia ra làm 2 phần: các hoạt động ở phái client – client side và các hoạt động xử lý ở phái server (server side)
Server side : cho phép người dùng gửi yêu cầu lấy dữ liệu và phân tích trên máy chủ. Máy chủ sẽ thực hiện các yêu cầu và gửi trả dữ liệu hoặc kết quả cho người dùng.
Client side : cho phép người dùng thực hiện vài thao tác phân tích trên dữ liệu tại chính máy người dùng.
Server và client có thể kết hợp giữa client side và server side để phục vụ nhu cầu của người dùng.
2.3.4.1. Server side
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 chủ này có khả năng truy cập dữ liệu và phần mềm để giải quyết yêu cầu của máy khách. 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ả. Trong WebGIS đôi khi thuật ngữ mapserver chỉ ra kiến trúc được dùng là server-side, mà trong đó người dùng gửi yêu cầu cần map để hiển thị, thì sẽ được phục vụ bởi server. Kiến trúc server side 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 server thông qua internet. Để có thể giao tiếp với các ứng dụng WebGIS đặt trên server, web server có thể sử dụng các chuẩn giao tiếp phổ biến như CGI, Java…
Ưu điểm:
Nếu máy chủ có khả năng xử lý cao, người dùng sẽ truy cập được các dữ liệu lớn và phức tạp thay vì phải xử lý trên máy khách.
Nếu máy chủ có khả năng xử lý cao được dùng, các chức năng phân tích GIS phức tạp sẽ được xử lý nhanh hơn thay vì xử lý trên máy khách.
Nhược điểm:
Bất cứ các yêu cầu dù lớn hay nhỏ đều phải được gửi về cho máy chủ xử lý và các kết quả cũng được gửi trả lại cho máy khách hiển thị thông qua Internet.
Ảnh hưởng đến băng thông khi truyền tải dữ liệu lớn.
Không tận dụng được ưu thế của máy cục bộ.
Server side thường được sử dụng cho các hệ thống lớn trên toàn cầu.
2.3.4.2. Client side
Client side chuyển đổi các yêu cầu sang được xử lý tại máy khách. Máy khách phải có khả năng đủ mạnh để xử lý các yêu cầu này.Thay vì phải bắt máy chủ xử lý tất cả thì một số chức năng GIS sẽ được tải về máy khách, trú ngụ ở đó và dữ liệu được xử lý tại máy khách.
Có 2 dạng triển khai của kiến trúc client side như sau:
GIS applet được phân phối đến client khi có yêu cầu
Các xử lý GIS sẽ được server cung cấp cho phía client dưới dạng các chương trình thực thi nhỏ hoặc là các applet để có thể chạy được ở client
Người dùng tạo ra một yêu cầu từ trình duyệt, yêu cầu được gửi tới server, server xử lý các yêu cầu
Kết quả trả về cho client bao gồm các dữ liệu và các applet cần thiết để người dùng có thể làm việc trên dữ liệu đó
Applet được viết bằng javascript, java…
GIS applet và các plug-in cố định ở client
Các GIS applet cài đặt cố định ở client
Trình duyệt web cài đặt một số các plug-in cần thiết
Server được gọi khi client cần dữ liệu mới
Người dùng được thao tác trên dữ liệu họ dùng và phân tích chúng
Ưu điểm:
Sử dụng được ưu thế của máy khách.
Người dùng có thể điều khiển được các điều khiển xử lý dữ liệu.
Người dùng có thể làm việc mà không cần phải gửi và nhận các yêu cầu qua Internet.
Nhược điểm:
Việc tải các chức năng từ máy chủ như các Applets có thể bị trì hoãn, kéo dài.
Các dữ liệu lớn và phức tạp sẽ khó được xử lý trên máy khách nếu máy khách không đủ mạnh.
Các thủ tục GIS phức tạp sẽ khó thực hiện trên máy khách nếu máy khách không đủ mạnh.
Người dùng sẽ không được huấn luyện (đào tạo) nếu muốn dùng dữ liệu hoặc các chức năng phân tích.
Client side thường được sử dụng cho các hệ thống nhỏ trong phạm vi cục bộ.
2.3.4.3. Kết hợp cả 2 chiến lược
Nếu dùng thuần Server side hoặc Client side thì sẽ gặp các giới hạn:
Nếu server side đòi hỏi phải chuyển tải thường xuyên, thì các tác vụ của nó sẽ dễ làm giảm đến băng thông và đường truyền Internet.
Client side thì lại có thể chiếm hết tài nguyên của máy khách. Một số chương trình sẽ thực hiện rất chậm do sự không phù hợp giữa các yêu cầu của các tiến trình và khả năng của máy.
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.
Các tác vụ đòi hỏi sử dụng database hoặc phân tích phức tạp sẽ được gán trên máy chủ.
Các tác vụ nhỏ sẽ được gán ở máy khách.
Trong trường hợp này, cả máy chủ và máy khách cùng chia sẻ thông tin với nhau về sức mạnh và khả năng của chúng.
2.3.5. Trao đổi dữ liệu của hệ thống WebGIS
GIS đã ra đời từ khá lâu và các ứng dụng GIS đã được phát triển trên nhiều lĩnh vực khác nhau, mỗi ứng dụng này, dữ liệu GIS cũng được tạo ra, các dữ liệu này là rất lớn và tốn thời gian và công sức xây dựng. Việc chia sẻ nguồn tài nguyên dữ liệu sẽ làm giảm chi phí xây dựng và quản lý dữ liệu GIS.
Trong mô hình kiến trúc WebGIS đơn thì dữ liệu GIS được dùng cho một nhóm ứng dụng, mà dữ liệu này lại có thể được sử dụng cho các nhóm ứng dụng khác.
Tổ chức OGC đã đưa ra 2 chuẩn trao đổi dữ liệu:
2.3.5.1. Web Map Service / Server
Trong chuẩn trao đổi dữ liệu này, web server sẽ trở thành web map server có service phục vụ cho chia sẻ dữ liệu. Các hoạt động mà client có thể thực hiện thông qua service 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 dữ liệu chưa xử lý dạng thuộc tính hay không gian 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, JPEG.
Các chức năng của một web map service:
GetCapabilities: Khả năng hỗ trợ, client nhận về một mô tả thông tin WMS, các tham số được chấp nhận và hỗ trợ, bảng mô tả dưới dạng file XML.
GetMap lấy bản đồ, client nhận về một ảnh bản đồ phù hợp với tham số mà client gửi lên server.
GetFeatureInfo lấy thông tin đặc điểm, client hỏi thông tin về đặc điểm nào đó xuất hiện trên bản đồ.
Client gửi các yêu cầu dưới dạng một URL, các yêu cầu được chỉ ra bởi tham số.
2.3.5.2. Web Feature Service / Server
Server được gọi là Web Feature server có service 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ì Web Feature Server sẽ gửi về thông tin không gian và thông tin thuộc tính có liên quan dưới dạng file GML (Geographic Markup Language) một dạng file XML, client sử dụng file XML này để tạo ra ảnh bản đồ. Chức năng của WFS giống với WMS chỉ khác dữ liệu trao đổi.
GetCapabilities: trả về một tài liệu XML (Extensible Markup Languge) mô tả chức năng của WCS.
DescribeCoverage: trả về một tài liệu XML mô tả các Coverage mà WCS Server có thể cung cấp.
GetCoverage: trả về một Coverage thoả mãn các điều kiện mà Client cung cấp.
Chương 3 MapServer – WebGIS Application
3.1. Giới thiệu Mapserver
Mapserver là môi trường phát triển cho việc xây dựng ứng dụng GIS thông qua internet. Trong mô hình kiến trúc WebGis, Mapserver là ứng dụng GIS được đặt trên webserver. Mapserver là sản phẩm của trường đại học Minnesota (University of Minnesota - UMN) trong dự án kết hợp giữa NASA và bộ tài nguyên Minnesota. Mapserver có thể chạy trên nhiều môi trường, nó được viết bằng C++ có thể chạy trên các version của UNIX/LINUX, WINDOWS và cả trên MacOS. Để giao tiếp với các thành phần trên môi trường web, Mapserver sử dụng chuẩn giao tiếp CGI (Common Gateway Interface). Phiên bản Mapserver hiện tại là MapServer 5.4.
MapServer có các đặc điểm sau:
Hỗ trợ các dịch vụ WebGIS theo chuẩn OGC, bao gồm: WMS Server, WMS Client, WFS Server, WFS Client và WCS Server.
Xuất bản đồ với nhiều ưu điểm:
Vẽ đối tượng theo tỷ lệ.
Hiển thị nhãn theo đối tượng
Tùy biến giao diện, mẫu trước khi xuất.
Sử dụng font: TrueFont
Tạo bản đồ chuyên đề dựa trên biểu thức truy vấn trên các lớp cơ sở.
Hệ thống Mapserver bao gồm cả Mapscript, hỗ trợ các ngôn ngữ kịch bản phổ biến và môi trường phát triển như C#, PHP, Perl, Python, Java, và Ruby. Mapscript cung cấp môi trường thuận lợi cho việc phát triển các ứng dụng tích hợp các dữ liệu phân tán.Ta có thể lấy dữ liệu không gian qua các ngôn ngữ kịch bản và dựa vào Mapscript ta có thể tạo ra được ảnh bản đồ.
Hỗ trợ các hệ điều hành: Linux, Windows, MAC OS X, Solaris, …
Hỗ trợ định dạng dữ liệu raster và vector:
TIFF/GeoTIFF, GIF, PNG, ERDAS, JPEG và EPPL7.
ESRI shapefile, PostGIS, ESRI ArcSDE, Oracle Spatial, MySQL, …
Hỗ trợ lưới chiếu: hỗ trợ hơn 1000 lưới chiếu trong thư viện Proj.4
Mapserver đóng vai trò như là một map engine được cung cấp nội dung để tạo ảnh bản đồ khi cần đến.
3.2. Các thành phần của Mapserver
Ứng dụng Mapserver sử dụng chuẩn giao tiếp CGI để giao tiếp với các thành phần và với HTTP Server. Do có mã nguồn mở nên cũng có những ứng dụng được biên dịch để có thể dùng Mapscript truy xuất trực tiếp các hàm API của Mapserver.
Ứng dụng Mapserver CGI sử dụng các tài nguyên sau:
Một webserver server (Apache hoặc IIS)
Phần mềm Mapserver (WebGIS application)
File khởi tạo dùng để cấu hình và tùy biến các thông số của ứng dụng Mapserver (không bắt buộc)
Map file là file cấu hình cho ứng dụng Mapserver.
Template file là giao diện giữa người dùng và Mapserver
Dữ liệu GIS
3.2.1. File khởi tạo
Mỗi khi http server nhận được yêu cầu từ client thông qua chuỗi URL thì http server sẽ gọi Mapserver chạy và thực thi. Bằng cách sử dụng file khởi tạo (file html) ta định nghĩa tham số cơ bản càn thiết để Mapserver có thể thực thi được.
Ví dụ:
[map],[map_web_imagepath],[img]…
3.2.2. Map file
Là một file text cấu hình cho ứng dụng Mapserver. Nó định nghĩa vùng bản đồ, thông báo cho Mapserver biết dữ liệu ở đâu và output là dạng gì và ở đâu. Nó định nghĩa các layer, bao gồm nguồn dữ liệu, khung chiếu và các biểu tượng. Nó có đuôi mở rộng là .map.
3.2.3. Template file
Nó điều khiển các hình bản đồ và các ghi chú trả về bởi Mapserver sẽ xuất hiện trên trang html. Đầu tiên Mapserver đọc template file này và nếu gặp các từ khóa hoặc các mẫu thì nó sẽ thay thế các giá trị tương ứng lấy từ chuỗi kết quả trả về, file này sẽ được gửi trở vè trình duyệt và hiển thị trên trình duyệt.
3.2.4. Dữ liệu GIS
Dữ liệu vector, Mapserver sử dụng ESRI shapefile làm dữ liệu mặc định.Ngoài ra các định dạng dữ liệu vector GIS phổ biến khác hiện nay, Mapserver đều có thể hiểu và tương tác được, như PostGIS, ESRI, ArcSDE, MapInfo… và nhiều định dạng khác thông qua thư viện OGR. Dữ liệu raster, MapServer hỗ trợ TIFF/GeoTIFF, EPPL7 và các định dạng khác thông qua thư viện GDAL.
3.3. Sơ đồ hoạt động của Mapserver
Hình 21: Sơ đồ hoạt động của Mapserver
MapServer có thể hoạt động ở hai chế độ CGI (Common Gateway Interface) và API (Application Program Interface). Ở chế độ CGI, các chức năng của MapServer trong môi trường WebServer là CGI MapScript. Ở chế độ API, có thể truy cập MapServer bằng PHP, Perl hoặc Python. MapServer hoạt động dựa vào các mẫu. Trước khi thực thi yêu cầu của web, MapServer đọc tệp tin cấu hình (mapfile) mô tả các lớp và các thành phần khác của bản đồ.Mapserver sẽ vẽ ra ảnh bản đồ. Tiếp theo, nó sẽ đọc một hoặc nhiều tệp tin mẫu HTML mà nó nhận diện trong tệp tin cấu hình. Mỗi tệp tin mẫu sẽ chứa đựng các tags HTML và các chuỗi MapServer đặc biệt. Các chuỗi này sẽ được sử dụng, ví dụ chuỗi chỉ đường dẫn để lưu ảnh bản đồ do Mapserver tạo ra, hoặc chuỗi dùng để nhận diện các lớp nào sẽ được sắp xếp, …MapServer thay thế các giá trị hiện tại vào các các chuỗi này và gửi luồng dữ liệu về cho WebServer để WebServer tiếp tục chuyển về cho trình duyệt. Khi có một yêu cầu mới phát sinh, MapServer sẽ nhận yêu cầu từ WebServer với các giá trị mới và chu trình cứ thế tiếp diễn.
3.4. Cài đặt Mapserver
UMN MapServer là mã nguồn mở và nó là một phương tiện render bản đồ tự do cho web. Do nó là mã nguồn mở nên nó có thể được biên dịch trên nhiều môi trường và nhiều hệ điều hành khác nhau. Chúng ta sẽ tìm hiểu việc biên dịch và cài đặt MapServer trên môi trường ubuntu Linux.
Các thư viện yêu cầu :
GD: là thư viện đồ họa. MapServer sử dụng GD để render ảnh, là thư viện bắt buộc phải cài đặt. Các thư viện GD sử dụng là zlib, libpng, Freetype, libJPEG.
Zlib: Thư viện nén dữ liệu sử dụng bởi GD.
Libpng: thư viện render ảnh PNG.
Libjpeg : thư viện render ảnh JPEG
Freetype: Được sử dụng bởi GD vho việc render ảnh.
Proj.4 thư viện lưới chiếu bản đồ. Nó có thể hiện thị trên web bởi MapServer.
Webserver apache
Mysql server
PHP5
File cài đặt mapserver cgi-mapserver.deb.
Các thư viện và file cài đặt MapServer ở dạng binary packages có thể tải về từ trang
Để kiểm tra cài đặt Mapserver khởi động lại Webserver bằng lệnh :
$ /etc/init.d/apache2 restart
Kiểm tra Mapserver đã cài đặt đúng chưa gõ lệnh:
$ /usr/lib/cgi-bin/mapserv
Nếu hiện ra :
This script can only be used to decode form results and should be initiated as a CGI process via a httpd server.
Thì đã cài đặt MapServer thành công.
3.5. Tìm hiểu Mapfile
Mapfile là trái tim của Mapserver. Nó định nghĩa các quan hệ giữa các đối tượng, điểm, chỉ ra dữ liệu ở đâu và định nghĩa mọi thứ được vẽ như thế nào. Trong mapfile có nhiều đối tượng như Map, PROJECTION, LAYER, CLASS.. mỗi đối tượng định nghĩa cách thức tạo nên ảnh bản đồ hoặc đối tượng để Mapserver truy xuất dữ liệu cho câu truy vấn. Mapfile có cấu trúc phân cấp, MAP Object là root, các object nằm dưới nó. Chú thích trong mapfile là dấu #.
3.5.1. Map Object
Trong mapfile thì MAP là đối tượng gốc, chứa trong nó các đối tượng khác.
EXTENT [minx][miny][maxx][maxy] : Không gian phạm vi của ảnh bản đồ được tạo ra, nó được được định nghĩa bởi kết hợp góc dưới bên trái [minx],[miny] và góc trên bên phải [maxx][maxy]. Lỗi trong định nghĩa extent có thể tạo ra kết quả là trang trắng, bản đồ bị méo hoặc lỗi. EXTENT phải được đinh nghĩa, và nó phải ở trong cùng một hệ thống kết hợp như là các đối tượng PROJECTION.
FONTSET [filename] : Liệt kê danh sách các font được dùng. Mỗi dòng chứa 2 thành phần: một bí danh và một đường dẫn đến font được phân cách bằng khoảng trắng. Alias là tên dùng để chỉ font này trong mapfile. Mapserver sử dụng true font.
IMAGECOLOR [r][g][b]: Màu được dùng làm background cho ảnh bản đồ. Nếu thuộc tính transparency được chọn , thì màu sắc này sẽ đánh dấu như là màu trong suốt trong bảng màu. Khi đó thành phần nào của ảnh bản đồ sử dụng màu này để vẽ cũng trong suốt. Nên khi tạo ảnh bản đồ nếu chọn ảnh bản đồ trong suốt thì nên chọn màu imagecolor là màu không được dùng để vẽ các thành phần khác trên bản đồ.
IMAGETYPE [gif|png|jpeg|swf|gtiff] : Định dạng ảnh bản đồ được tạo ra
LAYER : Bắt đầu đối tượng LAYER
LEGEND : Bắt đầu cho đối tượng LEGEND
NAME [name] : Xác định tiền tố cho tên ảnh bản đồ, ảnh các thước tỷ lệ, ghi chú được tạo ra từ mapfile
Ví dụ :
NAME HN_ Các ảnh bản đồ tạo ra sẽ có tiền tố là HN_
PROJECTION : Bắt đầu cho đối tượng PROJECTION
QUERYMAP : Bắt đầu cho đối tượng QUERY MAP
REFERENCE : Bắt đầu cho đối tượng QUERYMAP
RESOLUTION : Định đồ phân giải cho ảnh kết quả, độ phân giải sẽ ảnh hưởng đến việc tính toán tỷ lệ, mặc định là 72.
SCALE : Tỉ lệ của bản đồ
SHAPEPATH [filename] : đường dẫn tới dữ liệu dạng vector
SIZE [x][y] : kích thước theo đơn vị pixel của ảnh bản đồ
STATUS [on|off] : trạng thái có được kích hoạt không của ảnh bản đồ. Nếu không được kích hoạt thì Mapserver sẽ không tạo ra ảnh bản đồ khi sử dụng mapfile này
SYMBOLSET [filename] : file chứa tập hợp các biểu tượng được dùng trên bản đồ. Trên bản đồ, các symbol được dùng để đánh dấu các đối tượng nhằm làm nổi bật và tăng thêm ngữ nghĩa.
SYMBOL : Bắt đầu đối tượng symbol
TEMPLATEPATTERN [regular expression] và DATAPATTERN [regular expression] : Trong request được gửi lên từ trình duyệt gồm có 2 dạng tham số là DATA và TEMPLATE. Các tham số đề là các từ khóa được Mapserver quy định trước và thường khó nhớ. Bằng cách sử dụng TEMPLATEPATTERN và DATAPATTERN ta có thể định nghĩa một tên khác cho các từ khóa này.
TRANSPARENT [on|off] : Thiết lập trong suốt cho ảnh bản đồ, mặc định là off.
UNITS [feet|inches|kilometers|meters|miles|dd] : Đơn vị của hệ tọa độ ảnh bản đồ.
WEB : Bắt đầu đối tượng web
3.5.2. Layer Object
Là đối tượng được sử dụng nhiều nhất trong mapfile, mỗi đối tượng layer mô tả một layer được dùng để tạo ra ảnh bản đồ. Các layer được vẽ theo thứ tự xuất hiện của chúng trong mapfile, layer đầu tiên ở dưới cùng, layer cuối cùng ở trên. Phiên bản MapServer nhỏ hơn 5, số layer tối đa là 200 trong một mapfile, còn trong phiên bản 5 trở lên thì không giới hạn số lượng layer. Có thể thay đổi số lượng layer bằng cách sửa file map.h thay đổi giá trị MS_MAXLAERS. Đường dẫn tới mapfile phải là đường dẫn tuyệt đối. Các layer được vẽ ra còn được tính thêm thứ tự ưu tiên. Raster độ ưu tiên thấp nhất sẽ được vẽ trước và đặt ở phía dưới, tiếp đến là vùng, đường, điểm và nhãn (label). Thứ tự này đảm bảo các layer khi xếp chồng thì không che khuất nhau.
CLASS : Bắt đầu đối tượng CLASS. Trong các định dạng vector, mỗi layer được vẽ, lấy dữ liệu từ một bảng dữ liệu. Mỗi bảng dữ liệu có nhiều trương thuộc tính. Mỗi thuộc tính xem như một CLASS.
CLASSITEM [attribute] : ứng với tên của trường thuộc tính trong bảng dữ liệu, được định nghĩa trong mapfile.
CONNECTIONTYPE [local|postgis|wms] : Kiểu kết nối OGR được dùng cho các loại dữ liệu khác ngoài dữ liệu mặc định là shapefile của ESRI. OGR là một thư viện được viết bằng C++ nó hỗ trợ các kết nối của nhiều loại dữ liệu như MapInfo, ArcInfo…
CONNECTION [string] : Câu kết nối cơ sở dữ liệu để nhận về dữ liệu nằm trên các server hoặc các DBMS
DATA [filename] : Tên file đầy đủ của dữ liệu để xử lý. Đối với dữ liệu là shapefile không cần chỉ rõ phần mở rộng. Đường dẫn có thể là tuyệt đối hoặc tương đối so với giá trị được chỉ ra bởi tham số SHAPEPATH của đối tượng MAP.
DUMP [true|false] : cho phép Mapserver trả dữ liệu dưới dạng GML. Đặc biệt có ích khi sử dụng với phương thức WMS GetFeatureInfo, mặc định là false.
FILTER [string] : Tham số này cho phép định nghĩa điều kiện lọc dữ liệu. Đối với dữ liệu shapefiles hoặc các dữ liệu được kết nối thông qua OGR, điều kiện lọc dữ liệu đơn giản là một chuỗi điều kiện. Còn đối với các loại dữ liệu được trích xuất từ cơ sở dữ liệu thông qua chuỗi kết nối thì điều kiện lọc là mệnh đề SQL WHERE.
FILTERITEM [attribute] : Trường dữ liệu dùng cho câu chuỗi lọc FILTER, chỉ dùng cho OGR và shapefiles.
MAXSCALE [double] : Tỉ lệ lớn nhất mà layer được vẽ
METADATA : được dùng với OGC WMS để định nghĩa như tiêu đề của layer, tạo ra các template. Những dữ liệu được đặt trong Metadata sẽ được truy xuất thông qua các tag của tập tin template.
Ví dụ:
METADATA
Title “Lớp địa hình”
Author “cục bản đồ việt nam”
Create date “8/5/2009”
END
MINSCALE [double] : Tỉ lệ nhỏ nhất mà layer được vẽ
NAME [string] : Tên layer, giới hạn trong khoảng 20 ký tự. Tên layer được dùng để liên kết giữa giao diện web và mapfile. Ảnh bản đồ là kết quả của nhiều layer chồng lấp lên nhau. Từ giao diện web có thể cho phép người dùng chọn lựa layer hiển thị. Khi tên layer được chọn và tên layer được định nghĩa trong mapfile phải giống nhau để có thể hiển thị. Tên layer là duy nhất, tên layer khác cùng tên thì phải khác tỷ lệ. Sử dụng GROUP để nhóm các layer lại với nhau.
PROJECTION : Bắt đầu đối tượng PROJECTION
STATUS [on|off|default] : Trạng thái của layer. Giá trị là default thì layer luôn được vẽ ra. Trạng thái là on thì layer sẽ được vẽ ra nhưng có thể chuyển về trạng thái off, trạng thái off thì layer không được vẽ ra nhưng có thể chuyển sang trạng thái on.
TOLERANCEUNIT [double] & TOLERANCE [double] : Trong trường hợp cần lấy thông tin đối tượng trên bản đồ, ta cần chỉ ra đối tượng được chọn bằng click chuột vào vùng cần chọn. TOLERANCE được dùng để quy định phạm vi đối tượng với tâm là vị trí click chuột. TOLERANCEUNIT chỉ ra đơn vị của TOLERANCE, mặc định nó là 3 pixel
Ví dụ:
TOLERANCE 3
TOLERANCE 6
Khi người dùng click chuột lên bản đồ. Mapserver xác định được vị trí click chuột là X,Y, sau đó tìm kiếm trong cơ sở dữ liệu xác định có đối tượng nào có vị trí trong hình tròn tâm X,Y bán kính 6*3.
TRANSPARENCY [interger|alpha] : Mức độ trong suốt của layer. Giá trị là số nguyên từ 0-100 hoặc là giá trị bằng alpha. Giá trị nguyên là giá trị độ mờ, giá trị là 0 là trong suốt hoàn toàn. Giá trị bằng alpha được dùng khi ảnh bản đồ xuất ra dưới dạng RGB.
TRANSFORM [true|false] : Báo cho Mapserver chuyển từ hệ tọa độ địa lý sang hệ tọa độ đồ họa (ảnh đồ họa). Mặc định là true. Đối với hệ tọa độ đồ họa, gốc tọa độ luôn là điểm góc trái trên của ảnh. Nó thường được dùng để đặt các logo và các mục cố định ở trên bản đồ.
TYPE [point|polygon|circle|raster|query] : Quy định các dữ liệu được vẽ ra. Không cần phải cùng loại dữ liệu. Ví dụ: các đối tượng polygon có thể được vẽ như là một tập các điểm, ngược lại một điểm không thể vẽ như là tập các polygon. Dữ liệu shapefile không chỉ chứa đơn thuần một loại đối tượng, mà có thể có nhiều đối tượng. Nếu có đối tượng là Point và Polygon, chọn TYPE là polygon thì kiểu Point sẽ không vẽ được. Query chỉ ra layer được truy vấn thông tin, không cần phải vẽ lại. Nếu giá trị là circle thì 2 điểm sẽ xác định hình chữ nhật chứa đường tròn.
3.5.3. Query Map Object
Định nghĩa cơ chế thực hiện câu truy vấn từ bản đồ
COLOR [r][g][b] : Khi xác định được đối tượng trên bản đồ, được chọn để truy vấn, Mapserver sẽ vẽ lại đối tượng này với màu là Color. Mặc định là Yellow.
SIZE [x][y] : Phạm vi thực hiện truy vấn, ngoài phạm vi này các đối tượng sẽ không được chọn để truy vấn dữ liệu. Mặc định là kích thước cả bản đồ, được quy định trong đối tượng Map.
STATUS [on][off] : Giá trị off thì sau khi thực hiện truy vấn, ảnh bản đồ sẽ không được vẽ lại.
STYLE [normal|hilite|selected] : Quy định cách thức vẽ lại các đối tượng được chọn cho truy vấn, các đối tượng khác vẫn được vẽ lại như bình thường.
Normal : vẽ lại các đối tượng này bình thường theo các giá trị thiết lập cho layer
Hilite : vẽ lại các đối tượng được chọn theo màu COLOR
Selected : chỉ vẽ lại các đối tượng được chọn, các đối tượng khác không vẽ lại.
3.5.4. Projection Object
Thiết lập phép chiếu cần xác định một phép chiếu chung cho đối tượng Map, và mỗi layer cũng cần chỉ ra một phép chiếu để vẽ các đối tượng trong layer đó. Đối tượng phép chiếu bao gồm tập các từ khóa của PROJ.4 (thư viện các phép chiếu).
Ví dụ: Giả sử bản đồ có trung tâm là 90 kinh độ tây, phép chiếu sẽ là:
PROJECTION
"proj=lcc"
"lon_0=90w"
END
Trong mỗi layer, phải định nghĩa một đối tượng PROJECTION miêu tả phép chiếu của dữ liệu nguồn, trong shapefile chứa dữ liệu không gian không được chiếu thì trong mỗi layer đối tượng PROJECTION sẽ là:
PROJECTION
"proj=latlong" END
Ví dụ phép chiếu UTM khu vực 15
PROJECTION
“proj=utm”
“ellps=GRS80”
“zone=15”
“north”
“no_defs”
END
Ví dụ một mapfile:
Hello.map
NAME "hello"
SIZE 400 300
IMAGECOLOR 249 245 186
IMAGETYPE png
EXTENT -1.00 -1.00 1.00 1.00
WEB
TEMPLATE "/var/www/hello.html"
IMAGEPATH "/var/www/image/"
IMAGEURL "/image/"
END
LAYER
STATUS default
TYPE point
FEATURE
POINTS 0.0 0.0 END
TEXT "hello"
END
CLASS
STYLE
COLOR 255 0 0
END
LABEL
TYPE bitmap
END
END
END
END
3.6. Kết nối các loại dữ liệu
3.6.1. Dữ liệu ESRI Shapefiles (SHP)
ESRI là công ty đã đưa ra định dạng dữ liệu này, Arcview là sản phẩm đầu tiên sử dụng shapefiles.
Shapefiles được tạo bởi 3 file:
Ví dụ:
Countries_area.dbf
Countries_area.shp
Countries_area.shx
Truy cập dữ liệu và phương thức kết nối
Truy cập shapefiles được gắn trực tiếp vào trong Mapserver. Nó có thể dùng được thông qua thư viện OGR, nhưng ở đây chúng ta sẽ nói về việc truy cập trực tiếp không thông qua thư viện OGR. Đường dẫn tới shapefile là được yêu cầu, không cần chỉ ra phần mở rộng của file. Mỗi một shapefile thì trong mapfile định nghĩa một layer, tên của layer trùng với tên shapefile.
Ví dụ:
NAME "First"
SIZE 400 300
IMAGECOLOR 255 255 255
IMAGETYPE JPEG
SHAPEPATH "/home/mapdata"
EXTENT -125.00 20.00 -65.00 50.00
WEB
TEMPLATE '/var/www/first.html'
IMAGEPATH '/var/www/image/'
IMAGEURL '/image/'
END
LAYER
NAME "US States"
STATUS default
TYPE line
DATA "statesp020"
LABELITEM "STATE"
CLASS
STYLE
COLOR 0 0 0
END
LABEL
COLOR 0 0 0
SIZE SMALL
END
END
END
END
3.6.2. Kết nối dữ liệu Raster
Mapserver hỗ trợ rất nhiều các định dạng file raster trong bản đồ. Để sử dụng ảnh raster như một layer, cần phải khai báo một đối tượng layer trong Mapfile và xác định các tham số kèm theo. Một layer raster đơn giản khai báo như sau.
LAYER
NAME "JacksonvilleNC_CIB"
DATA "Jacksonville.tif"
TYPE RASTER
STATUS ON
END
Trong đó DATA chỉ ra đường dẫn tới file ảnh raster, có thể là đường dẫn tuyệt đối hoặc tương đối theo SHAPEPATH khai báo trong đối tượng MAP. Ngoài các tham số trên một đối tượng layer dạng raster còn có thể thêm các thông tin PROJECTION, METADATA, MINSCALE, MAXSCALE và không có CONNECTION, CONNECTIONTYPE, FEATURE, LABEL…
Chọn lọc dữ liệu Raster
Dữ liệu raster dưới dạng các pixel, do đó có thể chọn lọc dữ liệu cần dựa vào giá trị của các pixel, hoặc dựa theo bảng màu giá trị của pixel theo bộ ba giá trị r, g, b. Ví dụ:
LAYER
NAME "JacksonvilleNC_CIB"
DATA "Jacksonville.tif"
TYPE RASTER
STATUS ON
CLASSITEM "[pixel]"
# class dử dụng điều kiện đơn giản “0” tương đương ([pixel] = 0)
CLASS
EXPRESSION "0"
STYLE
COLOR 0 0 0
END
END
# class sử dụng điều kiện lọc theo giá trị pixel
CLASS
EXPRESSION ([pixel] >= 64 AND [pixel] < 128)
STYLE
COLOR 255 0 0
END
END
# class sử dụng ba màu r g b từ bảng màu
CLASS
NAME "near white"
EXPRESSION ([red] > 200 AND [green] > 200 AND [blue] > 200)
STYLE
COLOR 0 255 0
END
END
# Class lọc các pixel có giá trị tận cùng bằng 1
CLASS
EXPRESSION /*1/
STYLE
COLOR 0 0 255 END END END
Việc chọn lọc được tiến hành như sau: đọc và phân loại trước các giá trị pixel vào một bảng gọi là bảng tìm kiếm, khi đó các pixel có giá trị lân cận được xếp gần nhau. Cuối cùng khi vẽ sẽ đọc được từng nhóm pixel từ bảng tìm kiếm dựa vào các chọn lọc dữ liệu trong định nghĩa các class của đối tượng layer. Nhanh hơn so với việc đọc và so sánh giá trị từng pixel, một ảnh raster thường lên tới hàng triệu pixel. Việc lọc dữ liệu pixel chỉ có thể tiến hành tốt trên các loại raster dạng 8 bit (giá trị pixel thuộc 0 - 255) còn đối với các ảnh raster dạng khác như 16 bit (0 - 65535) cần định nghĩa thêm giá trị cho tham số PROCESSING để quy định phạm vi chọn lọc các pixel
Ví dụ:
LAYER
NAME grid1
TYPE raster
STATUS default
DATA data/float.tif
PROCESSING "SCALE=-10,10"
PROCESSING "SCALE_BUCKETS=4"
CLASS
NAME "red"
EXPRESSION ([pixel] < -3)
STYLE
COLOR 255 0 0
END
END
CLASS
NAME "green"
EXPRESSION ([pixel] >= -3 and [pixel] < 3)
STYLE
COLOR 0 255 0
END
END
CLASS
NAME "blue"
EXPRESSION ([pixel] >= 3)
STYLE
COLOR 0 0 255
END
END
END
Trong đó PROCESSING “SCALE=-10,10” chỉ ra khoảng giá trị của những pixel được xét (-10,10) và PROCESSING “SCALE_BUCKETS=4” là sẽ lấy 4 pixel có giá trị thỏa mãn bất đẳng thức sau:
([pixel] < -3)
([pixel] >= -3 and [pixel] < 3)
([pixel] >= 3)
3.6.3. Kết nối dùng thư viện OGR
OGR (OpenGIS Simple Features Reference Implementation) là một thư viện C++ mã nguồn mở cung cấp khả năng đọc ghi các loại dữ liệu vector khác nhau, trong đó bao gồm cả ESRI shapefile và MapInfo mid/mif và định dạng TAB. OGR hỗ trợ rất nhiều định dạng: ArcInfo Coverages, ESRI shapefiles, MapInfo, OGDI vectors, Oracle Spatial, PostgreSQL…
Tích hợp OGR vào Mapserver
OGR được tích hợp thẳng vào source code của Mapserver, do đó để thực hiện kết nối một layer sử dụng OGR chỉ cần thay đổi và khai báo layer trong mapfile. Tham số DATA của đối tượng LAYER được thay bằng 3 tham số CONNECTONTYPE, CONNECTON và DATA.
Khai báo layer kết nối OGR trong mapfile
LAYER
…
CONNECTIONTYPE OGR
CONNECTION “datascource_name”
DATA “layer_definition”
…
END
Trong đó:
- là đường dẫn tới nguồn dữ liệu cần đọc. Nếu nguồn dữ liệu dạng tập hợp các file cung tên thì datasource_name là đường dẫn của một file trong tập hợp đó. Đường dẫn này có thể là tương đối hoặc tuyệt đối theo SHAPEPATH hoặc theo mapfile. Đối với các nguồn dữ liệu được lấy từ một CSDL thì datasource_name bao gồm cả user và password, tên bảng dữ liệu
Ví dụ: Kết nối đến Oracle Spatial : “OCI: user/password@mypass”
- layer_definition: tên, số lượng hoặc các định nghĩa SQL của layer dùng cho việc đọc nguồn dữ liệu
- Layer Name: tên layer
- Layer Number: số thứ tự layer dùng để chọn một layer
- Omitted: nếu không có khóa DATA, chọn layer 0
- SQL SELECT: câu SQL SELECT được dùng, trong trường hợp dữ liệu được lưu trữ trong một cơ sở dữ liệu gồm nhiều bảng. Khi đó từ câu SQL này dữ liệu được chọn ra để phát sinh một layer tạm thời sử dụng.
Ví dụ:
MapInfo TAB file
LAYER
NAME "Builtup_Areas_tab"
TYPE POLYGON
CONNECTIONTYPE OGR
CONNECTION "data/tab/092b06_builtup_a.tab"
STATUS ON
CLASS
...
END
...
END
Microstation DGN file using
LAYER
NAME "dgn"
TYPE LINE
CONNECTIONTYPE OGR
CONNECTION "dgn/santabarbara02.dgn"
DATA "0"
STATUS ON
STYLEITEM "AUTO"
CLASS
END
END # Layer
TIGER/Line file using
LAYER
NAME "Roads_tig"
TYPE line
CONNECTIONTYPE OGR
CONNECTION "full/path/to/tiger/TGR25001"
DATA "CompleteChain"
STATUS ON
CLASS
...
END
END
Directory of Shapefiles using SQL JOIN
LAYER
NAME "Parks_cov"
TYPE POLYGON
CONNECTIONTYPE OGR
CONNECTION "data/shppoly"
DATA "SELECT eas_id, idlink.Name FROM poly LEFT JOIN idlink ON poly.eas_id = idlink.eas_id"
STATUS ON
CLASSITEM "idlink.Name"
CLASS
... END END
3.6.4. Kết nối dữ liệu dùng WMS
WMS (Web Map Server) cho phép dử dụng dữ liệu từ nhiều server khác nhau, và tạo một mạng các Map server từ những client có thể tạo tùy chỉnh bản đồ. WMS server tương tác với client thông qua giao thức HTTP. Trong hầu hết các trường hợp, một WMS server là một chương trình CGI. Thực hiện kết nối dữ liệu theo chuẩn WMS, Mapserver lúc này đóng vai trò là client của WMS. Do là client nên Mapserver chỉ cần khai báo layer lấy dữ liệu từ WMS.
Lưu trữ file tạm
Cần đặt giá trị cho tham số IMAGEPATH trong đó đối tượng WEB của mapfile chỉ đến một thư mục hợp lệ và có thể ghi được. Mapserver sẽ dùng thư mục này để lưu trữ các file tạm được download từ server ở xa. Những file tạm này được tự động xóa đi bởi Mapserver.
Khai báo IMAGEPATH
MAP
...
WEB
IMAGEPATH "/tmp/ms_tmp/"
IMAGEURL ...
END
...
END
Để giữ lại các file tạm cho mục đích debug, khai báo :
LAYER
....
DEBUG ON
...
END
Khai báo layer dùng WMS
Layer dùng dữ liệu từ WMS được gọi là WMS layer. WMS layer được truy xuất qua kết nối kiểu WMS.
LAYER
NAME "prov_bound"
TYPE RASTER
STATUS ON
CONNECTION ""
CONNECTIONTYPE WMS
METADATA
"wms_srs" "EPSG:42304 EPSG:42101 EPSG:4269 EPSG:4326
"wms_onlineresource" ""
EPSG:42304"
"wms_name" "prov_bound"
"wms_server_version" "1.1.0"
"wms_formatlist" "image/gif,image/png,image/jpeg,image/wbmp"
"wms_format" "image/gif"
END
END
Các tham số sau đây là bắt buộc đối với kiểu kết nối WMS
+ CONNECTIONTYPE WMS
+ Tham số CONNECTION : chuỗi URL xác định địa chỉ của Web Map Server.
+ “wms_onlineresource” (meta data): được dùng khi tham số CONNECTION không có giá trị.
+ “wms_srs” (metadata): danh sách các mã phép chiếu EPSP được hỗ trợ bởi Web Map Server. Thông tin này có được từ câu truy vấn GetCapabilites (xem phần Các chuẩn WebGIS).
+ “wms_name” (metadata): danh sách các layer được lấy từ WMS server, giá trị được dùng để đặt LAYERS và tham số QUERY_LAYERS WMS URL
+ “wms_server_version” : phiên bản của giao thức WMS được hỗ trợ bởi WMS server, và WMS server sẽ dùng cho GetMap.
+ "wms_format" metadata: Định dạng ảnh dùng để thực hiện yêu cầu GetMap
+ "wms_formatlist" : Danh sách các định dạng ảnh sử dụng cho GetMap
3.6.5. Kết nối dữ liệu dùng WFS (Web Feature Server)
Để Mapserver hộ trợ WFS cần biên dịch Mapserver với các thư viện PROJ.4, GDAL/OGR thư viện hỗ trợ đọc ghi các file vector. LibCURL dùng giúp MapServer đóng vai tro HTTP client. Cần chỉ ra thư mục trong IMAGEPATH trong mapfile bởi vì Mapserver sử dụng thư mục này để lưu trữ file tạm download từ WFS server.
MAP
…
WEB
IMAGEPATH “/tmp/ms_tmp”
IMAGEURL …
END
…
END
Khai báo layer dùng WFS
Layer dùng cho WFS được khai báo như với các tham số chỉ rõ kết nối tới WFS server sử dụng tham số CONNECTION và tham số METADATA. Các tham số bắt buộc là:
CONNECTIONTYPE WFS
CONNECTION: chuỗi URL đến WFS server
LAYER phải chứa đối tượng METADATA với các tham số:
wfs_connectiontimeout: thời gian tối đa đợi để WFS trả lời mặc định là 30s
wfs_service: là WFS
wfs_typename: tên layer. Tên layer được xác định khi các client gởi GetCapabilities request lên WFS server.
Wfs_version phiên bản của wfs server
Wfs_request_method: thực hiện Get request cần đặt wfs_request_method là GET
Ví dụ layer sử dụng WFS
LAYER
NAME "wfs_gmap_roads"
STATUS DEFAULT
TYPE LINE
CONNECTIONTYPE WFS
CONNECTION "
METADATA
"wfs_version" "1.0.0"
"wfs_srs" "EPSG:42304"
"wfs_typename" "road"
"wfs_request_method" "GET"
"wfs_service" "WFS"
END
CLASS
NAME "roads"
STYLE
COLOR 0 0 0
END END END # layer
Chương 4: Xây dựng hệ thống quản lý bản đồ số dựa trên công nghệ MapServer
4.1. Bài toán xây dựng hệ thống quản lý bản đồ số
Hiện nay cùng với sự phát triển của công nghệ thông tin và máy tính, thông tin mà con người tạo ra là vô cùng lớn và đa dạng về nhiều lĩnh vực. Bản đồ cũng vậy, bản đồ không chỉ thể hiện các thông tin thông thường như đường đi, sông ngòi… mà nó còn thể hiện nhiều thông tin khác như du lịch, địa chất khoáng sản, thời tiết, bản đồ dự báo cảnh báo… Cùng với sự phổ biến của mạng internet mọi thông tin chúng ta cần có thể tìm trên internet, việc tìm kiếm thông tin trên mạng internet ngày càng được chú trọng và sử dụng rộng rãi, nhằm nắm bắt được thông tin một cách nhanh nhất. Với internet người sử dụng có thể dùng những ứng dụng bản đồ mà không cần phải cài đặt bất cứ phần mềm nào phức tạp và tốn kém. Trên tư tưởng đó, em muốn tìm hiểu xây dựng demo một website quản lý thông tin trên bản đồ, hiển thị các thông tin đó lên bản đồ, sử dụng công nghệ WebGIS mã nguồn mở MapServer. Các thông tin đó có thể là vị trí các điểm du lịch, nhà hàng, khách sạn…
4.2. Dữ liệu bản đồ
4.2.1. Shapefile
Hiện nay có 2 loại dữ liệu bản đồ phổ biến đó là ESRI shapefile và tab file MapInfo, Do MapServer sử dụng dữ liệu mặc định là shapefile nên trong đề tài này em sẽ sử dụng dữ liệu shapefile bản đồ Hà Nội để xây dựng demo một ứng dụng WebGIS MapSever.Phần mềm mã nguồn mở sử dụng shapefile làm dữ liệu mặc định. Dữ liệu shapfile là cấu trúc dữ liệu GIS của công ty ESRI, Một shapefile được tổ chức thành các tập tin riêng rẽ tối thiểu cần có 3 tập tin với phần mở rộng là ".shp", ".shx" và ".dbf".
".shp" chứa các thông tin về đặc dạng hình học của đối tượng
".shx" chứa thông tin về thứ tự của các đối tượng
".dbf" chứa thông tin về bảng dữ liệu thuộc tính của đối tượng
Dữ liệu shape file bản đồ Hà Nội gồm các file:
Border
Border_region.shp
Border_region.shx
Border_region.dbf
Quận
Quan_Region_region.shp
Quan_Region_region.shx
Quan_Region_region.dbf’
Giao Thông:
Duong_Region_polyline.shp
Duong_Region_polyline.shx
Duong_Region_polyline.dbf
Sông hồ
Song_Region_region.shp
Song_Region_region.shx
Song_Region_region.dbf
Song_Region_polyline.shp
Song_Region_polyline.shx
Song_Region_polyline.dbf
4.2.2 Xây dựng cơ sở dữ liệu
Ứng dụng sử dụng cơ sở dữ liệu quan hệ MySql, lưu trữ các thông tin về một đối tượng trên bản đồ cần quản lý. Trong ứng dụng này, em sẽ xây dựng cơ sở dữ liệu về các nhà hàng trên bản đồ Hà Nội.
Cơ sở dữ liệu restaurant gồm 3 bảng:
- Bảng store
Field
Type
Extra
Notes
id
Tinyint(3)
Auto_increment
resName
Varchar(50)
Tên nhà hàng
address
Varchar(25)
Địa chỉ nhà hàng
latitude
Float
Tọa độ theo vĩ độ
longitude
Float
Tọa độ theo kinh độ
phone
Varchar(20)
Số điện thoại
website
Varchar(50)
Website
- Bảng product
Field
Type
Extra
Notes
id
Tynyint(3)
Auto_increment
description
Varchar(20)
Danh sách các món ăn
- Bảng menu:
Tạo menu các món ăn cho từng nhà hàng theo id
Field
Type
Extra
Notes
store_id
Tinyint(3)
product_id
Tinyint(3)
4.3. Xây dựng chương trình
4.3.1. Tạo Mapfile
Tạo Mapfile 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 mapfiile 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.
Gồm có 5 layer:
Layer Border_Region: định nghĩa layer vẽ đường viền của bản đồ.
Layer Quận: Định nghĩa layer vẽ các quận, trong layer này định nghĩa các class như là class Quận Ba Đình, Quận Cầu Giấy, Quận Thanh Xuân… để mô tả chi tiết vẽ các quận phân biệt màu sắc, tên quận cho dễ nhận biết.
Layer Giao Thông: Layer này vẽ các đường giao thông và tên đường phố.
Layer Song_Region_region : layer vẽ các sông lớn và hồ theo region.
Layer poi: Định nghĩa các điểm cần thêm vào trên bản đồ như vị trí của các nhà hàng, khách sạn trường học.
4.3.2. Xây dựng các chức năng
Sử dụng MapScript của UMN MapServer để xây dựng các ứng dụng, MapScript cung cấp các đối tượng tương tác với bản đồ (MapObject), Lớp (LayerObject), chú thích (LegendObject), Bản thân các đối tượng này đã được cài đặt các thuộc tính và các hàm cơ bản.
4.3.2.1. Công cụ phóng to, thu nhỏ, pan
- Input:
+ Bản đồ hiện tại
+ Tỷ lệ phóng to thu nhỏ cho trước
+ Một điểm do người dùng kích chuột trên bản đồ hoặc một vùng chữ nhật do người dùng vẽ trên bản đồ.
+ Kiểm tra các radio box của các công cụ pan, zoomin, zoomout được check
- Output: Bản đồ được phóng to, thu nhỏ hoặc pan
- Giải thuật: Người dùng kích chuột lên một điểm, xác định tọa độ của điểm đó, dùng hàm ZoomPoint của MapObject với hệ số phóng to, thu nhỏ cho trước.
4.3.2.2. Công cụ hiển thị, tắt các lớp
- Input:
+ Danh sách các lớp được hiển thị hoặc tắt dự vào các checkbox cho mỗi lớp
- Ouput : Các lớp được hiển thị hoặc tắt
Giải thuật: Lấy tên của lớp đó qua tên của checkbox, dùng hàm getLayerbyname để tạo một đối tượng layer tương ứng với lớp đó, tùy vào checkbox được check hay không thì dùng hàm set(‘status’,MS_ON||MS_OFF) với đối tượng layer đó.
4.3.2.3. Công cụ hiển thị thông tin của đối tượng
- Input: Đối tượng cần xem thông tin sẽ được người dùng click chuột vào tại một điểm, xác định tọa độ điểm đó, chuyển tọa độ điểm đó từ tọa độ màn hình về tọa độ bản đồ.
- Output: Đối tượng tồn tại trong cơ sở dữ liệu thì sẽ được hiển thị trên bản đồ, và các thông tin thuộc tính của đối tượng đó.
- Giải thuật: Truy vấn trong cơ sở dữ liệu tìm đối tượng có tọa độ theo kinh độ, vĩ độ tương ứng mà người dùng vừa bấm vào, lấy ra các thông tin của đối tượng đó và hiển thị trên bản đồ.
4.3.2.4. Công cụ tìm kiếm
- Input: Tên của đối tượng cần tìm kiếm trên bản đồ, submit tìm kiếm.
- Output: Nếu đối tượng được tìm thấy thì sẽ trả về bản đồ zoom tới đối tượng cần tìm kiếm.
- Giải thuật: Tìm kiếm theo tên đối tượng trong cơ sở dữ liệu, nếu đối tượng tồn tại trong cơ sở dữ liệu, thì lấy ra tọa độ theo kinh độ và vĩ độ của đối tượng đó, chuyển tọa độ đó về tọa độ màn hình dùng hàm map2img, dùng hàm zoomPoint để thiết lập các thông số cho ảnh bản đồ hiển thị kết quả tìm kiếm.
4.3.3. Xây dựng các hàm xử lý
Sử dụng PHP/ MapScript truy cập vào các hàm API của MapServer để vẽ bản đồ. Xây dựng một ứng dụng MapServer hiển thị bản đồ với các chức năng pan, zoom, bật tắt các layer thành phần bản đồ. Hiển thị các địa điểm nhà hàng, khách sạn trên bản đồ, kết nối với cơ sở dữ liệu MySql lấy ra thông tin thuộc tính của các đối tượng đó trên bản đồ.
- Hàm img2map(): chuyển từ tọa độ màn hình về tọa độ ảnh
function img2map($width,$height,$point,$ext) {
$minx = $ext->minx;
$miny = $ext->miny;
$maxx = $ext->maxx;
$maxy = $ext->maxy;
if ($point->x && $point->y){
$x = $point->x;
$y = $point->y;
$dpp_x = ($maxx-$minx)/$width;
$dpp_y = ($maxy-$miny)/$height;
$x = $minx + $dpp_x*$x;
$y = $maxy - $dpp_y*$y;
}
$pt[0] = $x;
$pt[1] = $y;
return $pt;
}
- Hàm map2img() : Chuyển từ tọa độ bản đồ về tọa độ màn hình
function map2img($width,$height,$point,$ext) {
if ($point->x && $point->y){
$ppd_x = $width/($ext->maxx - $ext->minx);
$ppd_y = $height/($ext->maxy - $ext->miny);
$p[0] = $ppd_x * ($point->x - $ext->minx);
$p[1] = $height - $ppd_y * ($point->y - $ext->miny);
settype($p[0],"integer");
settype($p[1],"integer");
}return $p;}
- Hàm GetStoreTable() lấy ra thông tin thuộc tính của một nhà hàng trên bản đồ trong bảng store.
function GetStoreTable() {
@mysql_connect("localhost", "root", "password") or die("Could not connect to MySQL server!");
@mysql_select_db("restaurant") or die("Could not select database");
$query = "SELECT * FROM store";
$result = mysql_query($query);
$i = 0;
while ( $row = mysql_fetch_array($result,MYSQL_NUM) ) {
$qresult[$i] = $row;
$i++;
}
return $qresult;
}
- Hàm AddPoint(): Thêm các điểm trên bản đồ là vị trí của các nhà hàng, khách sạn theo kinh độ và vĩ độ của nhà hàng đó, được lưu trong cơ sở dữ liệu.
function AddPoints ( $map, $qresult ) {
$this_layer = $map->getLayerByName('poi');
$i = 0;
foreach($qresult as $row) {
$poi[$i] = ms_newPointObj();
$ln[$i] = ms_newLineObj();
$shp[$i] = ms_newShapeObj(MS_SHAPE_POINT);
$poi[$i]->setXY($row[3],$row[2]);
$ln[$i]->add($poi[$i]);
$shp[$i]->add($ln[$i]);
$shp[$i]->set(index, $row[0]);
$this_layer->addFeature( $shp[$i] );$i++;
}return;
}
4.4. Cài đặt chương trình và thử nghiệm
4.4.1. Cài đặt
Chương trình cài đặt chạy trên hệ điều hành ubuntu linux. Để chạy chương trình ta phải cài đặt các phần mềm.
Webserver apache
Hệ quản trị cơ sở dữ liệu Mysql
PHP5
Phpmyadmin
Cgi-MapServer
Các file dữ liệu bản đồ dạng shp, shx, dbf, và file mapfile nằm trong thư mục /home/bdhanoi.
Các file php, js và các file ảnh nằm trong thư mục /var/www/.
4.4.2. Một số giao diện chương trình
Giao diện chính:
Hình 22: Giao diện chính chương trình
Zoom:
Hình 23: Chức năng zoom
Bật, tắt các layer:
Hình 24: Chức năng bật tắt các layer
Thông tin đối tượng trên bản đồ:
Hình 25: Xem thông tin của đối tượng trên bản đồ
Tìm kiếm:
Hình 26: Chức năng tìm kiếm
4.4.3. Thử nghiệm chương trình
Chương trình được cài đặt chạy thử nghiệm trên máy Pentium(R) 4, CPU 3.0 GHz, 512MB Ram kết quả như sau
STT
Tính năng
Đánh giá
1
Hiển thị bản đồ
Hiển thị tốt, hiển thị chậm trong lần đầu tiên, các lần sau nhanh hơn.
2
Phóng to, thu nhỏ bản đồ
Bản đồ được phóng to, thu nhỏ theo zoomsize có thể thay đổi
3
Dịch chuyển bản đồ
Việc dịch chuyển với người dùng sẽ khó khăn trong việc xác định chính xác vị trí cần dịch chuyển
4
Tắt bật các layer
Tắt bật các layer tốt
5
Tìm vị trí của nhà hàng
Chức năng được thực hiện tốt, nhà hàng được tìm thấy sẽ được dịch chuyển tới giữa khung ảnh cho người dùng.
KẾT LUẬN
1. Các kết quả đạt được
Sau khi thực hiện đề tài, em đã đạt được một số kết quả như sau:
Nghiên cứu về bản đồ, các cơ sở toán học của bản đồ, chiếu hình bản đồ
Hệ thống thôn tin địa lý – GIS, tổ chức cơ sở dữ liệu trong GIS
Nghiên cứu công nghệ mã nguồn mở MapServer, PHP/MapScript, ứng dụng xây dựng WebGIS
Nắm vững được các kiến thức về các ngôn ngữ PHP, Javascript, HTML…
Xây dựng một WebGIS dựa trên MapServer, với các chức năng cơ bản
Cài đặt và chạy tốt trên localhost
2. Hướng phát triển của đề tài
Do hạn chế về thời gian và thiếu dữ liệu nên ứng dụng còn thiếu nhiều tính năng cần phát triển như:
Sử dụng các công nghệ mới như web 2.0 và javascript nhằm cải thiện tốc độ, và các công cụ zoom, pan tiện lợi hơn bằng lăn chuột và kéo thả chuột.
Phát triển thêm các chức năng hỗ trợ người dùng như tìm đường đi ngắn nhất, và cập nhật thêm dữ liệu không gian
MapServer hỗ trợ rất nhiều các ngôn ngữ kịch bản như C#, Perl, PHP, nghiên cứu và phát triển dựa trên các ngôn ngữ này.
Tài liệu tham khảo
[1] Phạm Hữu Đức - Đại học Kiến Trúc Hà Nội. Giáo trình Cơ sở dữ liệu & Hệ thống thông tin địa lý – GIS.
[2] Võ Quang Minh, Nguyễn Hồng Điệp , Trần Ngọc Trinh, Trần Văn Hùng – Đại học Cần Thơ. Giáo trình hệ thống thông tin địa lý (GIS SYSTEM).
[3] Bill Kropla. Beginning MapServer Open Source GIS Development 2005
[4] Trang web:
[5] Trang web:
Các file đính kèm theo tài liệu này:
- Nguyen Cao Cuong_K50HTTT_Khoa luan tot nghiep dai hoc.doc