Nghiên cứu xây dựng bản đồ trực tuyến trên nền mã nguồn mở Trần Thị Thu Ngân
Trang 1Nghiên cứu xây dựng bản đồ trực tuyến trên
nền mã nguồn mở Trần Thị Thu Ngân
Trường Đại học Công nghệ Luận văn Thạc sĩ ngành: Công nghệ phần mềm; Mã số: 60 48 10
Người hướng dẫn: TS Cao Tuấn Dũng
Năm bảo vệ: 2012
Abstract: Nghiên cứu cơ sở lý thuyết Bản đồ trực tuyến (Web Cartography) về kiến
trúc, cách biểu diễn thế giới thực, các phương pháp hiển thị dữ liệu không gian, quy trình phát hành bản đồ trực tuyến, các nguyên tắc bản đồ học phát triển cho bản đồ trực tuyến v.v Phương pháp xây dựng bản đồ trực tuyến trên nền mã nguồn mở sử dụng các công cụ MapServer, CSDL không gian PostgreSQL, xây dựng quy trình công nghệ thành lập và phát hành bản đồ trực tuyến trên Intemet Ứng dụng Really Simple Syndication (RSS) cập nhật mới cơ sở dữ liệu, thử nghiệm ứng dụng “ứng dụng bản đồ thời tiết Việt Nam” lên mạng Internet trên cơ sở những vấn đề đã được
nghiên cứu
Keywords: Mã nguồn mở; Công nghệ phần mềm; Bản đồ trực tuyến; Phần mềm; Xây
dựng bản đồ
Content
MỞ ĐẦU Giới thiệu
Bản đồ trực tuyến đóng vai trò quan trọng trong việc xử lý dữ liệu và truyền bá thông tin dự báo Nhờ có khả năng hiển thị thông tin tức thời, bản đồ trực tuyến trở thành một phương tiện chuyển tải thông tin dự báo rất phù hợp
Mục đích của luận văn
1- Nghiên cứu cơ sở lý thuyết Bản đồ trực tuyến (Web Cartography) về kiến trúc, cách biểu diễn thế giới thực, các phương pháp hiển thị dữ liệu không gian, quy trình phát hành bản
đồ trực tuyến, các nguyên tắc bản đồ học phát triển cho bản đồ trực tuyến v.v
2- Phương pháp xây dựng bản đồ trực tuyến trên nền mã nguồn mở sử dụng các công cụ MapServer, CSDL không gian PostgreSQL, xây dựng quy trình công nghệ thành lập và phát hành bản đồ trực tuyến trên Intemet
Trang 23- Ứng dụng RSS cập nhật mới cơ sở dữ liệu, thử nghiệm thành lập và phát hành “ứng
dụng bản đồ thời tiết Việt Nam” lên mạng Internet trên cơ sở những vấn đề đã được nghiên
cứu
Đối tượng và phạm vi nghiên cứu:
Về giới hạn địa lý: Việc xây dựng bản đồ thời tiết có thể ứng dụng ở tất cả các quốc gia
trên thế giới
Về công nghệ: Sử dụng công nghệ mã nguồn mở vì:
Tính an toàn cao, tính ổn định và đáng tin cậy, giảm phụ thuộc vào nhà cung cấp, không hạn chế quyền sử dụng, tiết kiệm chi phí trực tiếp
Tận dụng được các ý tưởng của cộng đồng, tuân thủ các chuẩn công nghệ chung của thế giới
Về phần mềm: Sử dụng phần mềm mã nguồn mở MapServer kết hợp với hệ quản trị cơ
sở dữ liệu PostgreSQL, lập trình ASP.NET, C#
Yêu cầu của luận văn:
- Đúc kết được những vấn đề lý thuyết căn bản của bản đồ trực tuyến hiện đại, đúc kết được những vấn đề về công nghệ liên quan và xây dựng quy trình công nghệ thành lập và phát hành bản đồ trên mạng
- Quy trình công nghệ xây dựng được phải đảm bảo tính khả thi trong điều kiện về trình
độ và hạ tầng cơ sở công nghệ thông tin của Việt Nam Từ đó chọn ra một công nghệ tiêu biểu để xây dựng sản phẩm thử nghiệm
- Sản phẩm thử nghiệm phải đạt chất lượng của bản đồ dự báo thời tiết về mặt nội dung thông tin cần chuyển tải, tính thẩm mỹ và thể hiện được ưu điểm của bản đồ trực tuyến là cung cấp khối lượng lớn thông tin ngoài thông tin địa lý
Nội dung của Luận văn: Luận văn gồm 3 chương
Chương 1 Chương này trình bày những vấn đề lý thuyết căn bản của khoa học bản đồ
truyền thống như khái quát phân loại bản đồ, bố cục của bản đồ, phương pháp thiết kế ký
hiệu, v.v đã được các nhà bản đồ học nghiên cứu phát triển cho biên tập bản đồ trực tuyến
Chương 2 Trọng tâm của chương là phần công nghệ được học viên chọn lựa để tạo lập
sản phẩm thử nghiệm đó là hai phần mềm mã nguồn mở MapServer và hệ quản trị cơ sở dữ liệu PostgreSQL
Chương 3 Trình bày quy trình khảo sát hiện trạng, ứng dụng RSS cập nhật mới cơ sở
dữ liệu, phương án công nghệ được áp dụng để thành lập và phát hành bản đồ thời tiết trên Internet, giới thiệu giao diện, nội dung chính và các công cụ trên bản đồ Xây dựng phần mềm DEMO ứng dụng dự báo thời tiết Việt Nam trên bản đồ trực tuyến
Trang 3CHƯƠNG 1 CƠ SỞ LÝ THUYẾT BẢN ĐỒ TRỰC TUYẾN
1.1 Bản đồ - Cách biểu diễn thế giới thực
1.1.1 Khái niệm chung về bản đồ
1.1.2 Cơ sở toán học cho bản đồ
1.1.2.1 Tỷ lệ bản đồ (map scale)
1.1.2.2 Cơ sở trắc địa - thiên văn của bản đồ
1.1.2.3 Lưới kinh - vĩ tuyến và các lưới toạ độ khác
1.1.2.4 Bố cục bản đồ và khung bản đồ
1.1.2.5 Phân mảnh bản đồ
1.1.3 Các phương pháp thể hiện bản đồ
1.2 Phân loại bản đồ trực tuyến
1.3 Kiến trúc bản đồ trực tuyến
Tương tự như kiến trúc của các ứng dụng trong môi trường web, kiến trúc bản đồ trực tuyến dựa trên mô hình Client-Server và gồm có 3 tầng: Tầng CSDL (Database tier), tầng trung gian (Middle tier) và tầng người dùng (Client tier)
1.4 Các nguyên tắc bản đồ học phát triển cho bản đồ trực tuyến
1.4.1 Khái quát hóa trong bản đồ trực tuyến
- Phương pháp cấp độ chi tiết (LOD)
- Phương pháp Khái quát tức thời
- Phương pháp kết hợp
1.4.2 Thể hiện nội dung theo chuyên đề
Bản đồ chuyên đề thể hiện sự phân bố của các đối tượng địa lý theo một chủ đề nào đó, như mật độ dân số, trường học, v.v
1.4.3 Nguyên tắc thiết kế ký hiệu
Các yếu tố nội dung bản đồ nói chung, bản đồ trực tuyến nói riêng được thể hiện bằng các ký hiệu kiểu điểm, đường, vùng và các chữ ghi chú
1.4.3.1 Các ký hiệu dạng điểm:
1.4.3.2 Các ký hiệu dạng đường:
1.4.3.3 Các ký hiệu dạng vùng:
1.4.3.4 Chữ ghi chú:
Trang 41.4.4 Màu sắc trình bày bản đồ trực tuyến
Theo yêu cầu truyền thống, màu sắc trên bản đồ phải hài hòa, đảm bảo tính thẩm mỹ, nhưng đồng thời tuân thủ các quy ước chung (thường được quy định trong các quyển ký hiệu)
1.4.5 Các thành phần chính của bản đồ trực tuyến
Theo công nghệ truyền thống, các thành phần chính của bản đồ trên giấy bao gồm: Tên bản đồ, bản đồ chính, ghi chú thước tỷ lệ, bảng chú giải, bản đồ phụ và các ô dành cho tranh ảnh, bài viết thuyết minh hoặc biểu đồ Với bản đồ trực tuyến, ngoài các thành phần chính nêu trên, bản đồ còn có thêm các thanh công cụ tương tác thường là công cụ thu phóng (zoom), tìm kiếm thông tin, bật tắt lớp, in bản đồ
CHƯƠNG 2 PHƯƠNG PHÁP XÂY DỰNG BẢN ĐỒ TRỰC TUYẾN TRÊN NỀN MÃ NGUỒN MỞ
2.1 Các tính năng của MapServer
MapServer là gì? “MapServer là một môi trường phát triển mã nguồn mở dùng để xây
dựng các ứng dụng về dữ liệu không gian trên web Internet”
2.2 Các thành phần và cách thức hoạt động của MapServer
2.2.1 Các thành phần của MapServer
- File khởi tạo (Initialization File)
- Mapfile - điều khiển cách tương tác với dữ liệu và vẽ kết quả của câu truy vấn
Mapfile có phần mở rộng là map
- Template File - đ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
- GIS Dataset - Về dữ liệu vectơ, MapServer sử dụng shapefile (của ERI) làm định
dạng dữ liệu mặc định
2.2.2 Cách thức 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 Đây là cách thức dễ dàng để khởi tạo và phát triển một ứng dụng Ở chế độ API, có thể truy cập MapServer bằng PHP, Perl hoặc Python, chế độ này cho phép xây dựng các ứng dụng uyển chuyển, giàu các chức năng và có khả năng truy cập các cơ sở dữ liệu mở rộng khác
Trang 52.2.3 Qui trình xử lý của MapServer
Hình 2.3 Qui trình xử lý của MapServer
2.3 Hệ CSDL không gian PostgreSQL
Để tăng thêm hiệu quả cho MapServer, ta sử dụng MapServer kết hợp với một hệ cơ sở
dữ liệu không gian
2.3.1 Tổng quan về PostgreSQL
2.3.2 Các đặc trƣng của PostgreSQL
PostgreSQL hỗ trợ cho kiểu dữ liệu hình học như point, line segment, box, polygon, và circle PostgreSQL sử dụng cấu trúc chỉ mục, cấu trúc đó tạo nhanh các kiểu dữ liệu hình học
2.3.3 Kiến trúc về hệ quản trị CSDL PostgreSQL
Cũng như các ứng dụng client/server khác, các ứng dụng client và server có thể nằm trên các máy khác nhau và được trao đổi thông qua mạng giao thức TCP/IP PostgreSQL quản
lý đồng thời nhiều kết nối, có thể tạo mới, hủy kết nối,
Tạo đối tượng bản đồ
Tính phạm vi bản đồ
Chọn công
cụ
Xác định hàm
Hiển thị thông tin
CSDL bản đồ
Trang 6- Quản lý truy nhập
- Quản lý vùng đệm
- Lớp quản lý lưu trữ vật lý
Hệ quản trị CSDL hỗ trợ điều khiển tương tranh và phục hồi sự cố bằng cách lập kế hoạch các yêu cầu của người dùng, lưu lại tất cả các thay đổi của CSDL Các mô đun liên quan đến điều khiển tương tranh và phục hồi sự cố:
- Quản lý giao tác
- Quản lý khóa
- Quản lý phục hồi sự cố
Các lớp quản lý truy nhập và quản lý bộ đệm đều phải tương tác với các mô đun này
2.3.4 Truy vấn dữ liệu tham chiếu không gian từ PostgresSQL
Khi người dùng gửi truy vấn, nó được phân tích và chuyển tới bộ tối ưu (optimizer), và tạo ra một cây truy vấn (thường là cây của các toán tử quan hệ) Mô đun thực hiện các toán tử
quan hệ nằm ở phía trên của lớp Quản lý truy nhập
Parser: Nhận các truy vấn ở dạng chuỗi ký tự từ các client, kiểm tra cú pháp, nếu đúng
cú pháp, truy vấn này sẽ được chuyển thành một cây truy vấn để có thể sử dụng được ở các mức thấp hơn
Rewriter: chỉ sử dụng với trường hợp truy vấn trên view Khi tạo ra một view thì
rewriter sẽ áp dụng lại các khóa trên các trường của bảng gốc được tạo ra trong view
Optimizer: Lấy cấu trúc của truy vấn dựa trên cây cú pháp, sau đó bộ phận con Path
Generator sinh ra tất cả các phương án thực hiện truy vấn, bộ phận Planner sẽ tính toán trên
các phương án này, lựa chọn phương án sử dụng ít tài nguyên nhất (thường là các chu kỳ của CPU) để thực hiện
Evualator: Lấy phương án đã được lựa chọn, truy nhập tới các mô đun hỗ trợ, thực hiện
truy vấn, lấy kết quả trả về từ CSDL
Command: Nếu truy vấn quá đơn giản (thường là các câu lệnh cơ sở), hệ thống sẽ sử
dụng Command mà không cần phải gọi đến Optimizer
Basic Parse: chia làm hai phần, phân tích từ vựng được thực hiện bởi Scan và sau đó
chuyển sang cho Gram thực hiện phân tích ngữ pháp và sinh ra cây cú pháp
Analyzer: chuyển đổi cây cú pháp thành cây truy vấn
2.4 Quy trình thành lập bản đồ sử dụng MapServer và PostgreSQL
2.4.1 Xây dựng CSDL trên PostgreSQL cho bài toán dự báo
2.4.1.1 Xây dựng CSDL không gian
Trang 7Bộ dữ liệu này bao gồm các lớp sau: Tỉnh, thành phố và Vùng
2.4.1.2 Xây dựng CSDL thuộc tính
Việc thu thập dữ liệu thời tiết đòi hỏi rất nhiều thời gian và công sức để đi đo độ ẩm, nhiệt độ, sức gió, lượng mưa, v.v…
2.4.1.3 Kết nối dữ liệu không gian và dữ liệu thuộc tính
2.4.2 Tổ chức dữ liệu bản đồ trong MapFile
File map (mapfile - map) là một đối tượng mà MapServer sử dụng để định nghĩa một ứng dụng vẽ bản đồ ở môi trường CGI Nó không những xác định bề ngoài của bản đồ, mà còn xác định cách thức MapServer hoạt động như thế nào khi có lời gọi đến nó từ máy chủ Web
2.4.3 Xây dựng giao diện cho trang bản đồ trực tuyến
* Thông tin dự báo:
- Thông tin chung nêu lên dự báo cho vùng khu vực gồm: khoảng trung bình nhiệt độ, kết luận nắng hay mưa, sức gió,
- Thông tin chi tiết cho vùng hay khu vực: Nhiệt độ, lượng mưa, sức gió, độ ẩm, áp suất,
* Các loại dự báo: Dự báo theo ngày, dự báo tương lai: theo 3 ngày hoặc 1 tuần
* Truy vấn dữ liệu với bản đồ
Thông tin thuộc tính mô tả về đối tượng trên bản đồ (thường liên quan đến các yếu tố địa lý) không đủ để giải quyết bài toán dự báo
2.4.4 Xây dựng các chức năng thành phần của bản đồ trực tuyến
Các yêu cầu của ứng dụng Website dự báo thời tiết gắn liền với nhu cầu một người dùng khi sử dụng Website để xem thông tin thời tiết
- Tình hình thời tiết khu vực trong ngày như thế nào?
- Thời tiết của tỉnh, thành phố trong ngày như thế nào?
- Thời tiết một tỉnh, thành phố vào một ngày nào đó như thế nào?
Các chức năng trên Web được chia thành 2 nhóm chính:
Bảng 2.1 Các chức năng trên bản đồ
1 Phóng to, thu nhỏ bản
đồ
2 Di chuyển bản đồ
Trang 83 Truy vấn thông tin trên
bản đồ
Lấy thông tin của 1 tỉnh, thành phố, một khu vực khi click chuột vào vùng không gian của tỉnh, thành phố hoặc khu vực đó
4 Tìm kiếm vị trí của một
tỉnh, thành phố, một khu
vực trên bản đồ
Dịch chuyển tới khu vực chứa tỉnh, thành phố hoặc khu vực này
Bảng 2.2 Các chức năng dự báo thời tiết
1 Xem thời tiết trong
ngày
Sử dụng các chức năng trên bản đồ để truy xuất thông tin thời tiết
2 Xem thời tiết vài ngày
tới
Sẽ cho phép truy xuất thông tin trong ngày và cả quá khứ
3 Tra cứu thông tin thời
tiết
CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG DỰ BÁO THỜI TIẾT TRÊN BẢN ĐỒ TRỰC TUYẾN
3.1 Khảo sát hiện trạng
3.1.1 Số liệu thời tiết trong dự báo
Dữ liệu gồm 3 dạng:
- Số liệu dự báo
- Số liệu tức thời
- Số liệu lưu trữ
Hình thức lưu trữ: Điện tử (lưu vào máy tính) và giấy tờ (có bộ phận quản lý giấy tờ số
liệu)
Quyền hạn trên số liệu:
- Hiện nay chưa có cơ chế phân quyền trên số liệu Mọi người trong đài đều có quyền khai thác, sử dụng và loại bỏ số liệu (dạng điện tử)
- Về nguyên tắc không được tự ý chuyển giao số liệu ra bên ngoài (các hệ thống, cơ quan, cá nhân ngoài ngành) đặc biệt là đối với một số khu vực nhạy cảm cần phải được sự cho phép của lãnh đạo Đài
Trang 93.1.2 Các vấn đề trong bài toán dự báo thời tiết bằng bản đồ
3.2 Ứng dụng RSS xây dựng quy trình cập nhật cơ sở dữ liệu
3.2.1 RSS là gì?
Một dịch vụ Web - RSS (Readlly Simple Syndication) là một định dạng tập tin thuộc
họ XML dùng trong việc chia sẻ tin tức Web (Web syndication), cung cấp nội dung cập nhật thường xuyên
3.2.2 Các chuẩn chung của RSS
Do khó khăn trong việc trao đổi dữ liệu giữa một hệ thống gốc Java với một hệ thống gốc COM vào thời tiền RSS Cơ chế gom chuyển kiểu dữ liệu và những điểm không tương thích giữa hai hệ thống đã khiến cho tiến trình đó gặp không ít rắc rối khi thực thi Do đó các RSS dựa vào một chuẩn chung là XML, nên công việc trao đổi dữ liệu trở nên dễ dàng
3.2.3 Điểm mạnh của RSS
- RSS cập nhật thông tin, tiết kiệm về chi phí, tương hỗ với nhiều định dạng
- RSS độc lập với email, cho phép tổ chức nội dung, người nhận RSS hoàn toàn chủ động
- RSS đảm bảo quyền cá nhân, RSS có thể tái sử dụng, an toàn
- RSS linh hoạt trong cách cung cấp thông tin
3.2.4 Trao đổi dữ liệu trong RSS
- Web Map Service/Server (WMS)
WMS là mô ̣t trong các chuẩn phổ biến nhất của OGC 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 đồ, các thông tin truy vấn các đặc điểm được thể hiện trên bản đồ
Hình 3.2 Các chức năng của một Web Map Service
Ngoài ra, WMS còn cung cấp cho Client kiểm soát các kiểu hiển thi ̣ bản đồ thông qua Styled Layer Desrciptor (SLD)
Máy Client
WMS
Khả năng
hỗ trợ
Thông tin đặc điểm
Mô tả Layer
Loại yêu cầu
Bản đồ
Trang 10- Web Feature Service/Server (WFS)
Đây cũng là chuẩn do OGC đưa ra Trong đó Websever giờ được gọi là Web Feature có service phục vụ việc chia xẻ dữ liệu Tuy nhiên thay vì trả một ảnh bản đồ dạng đồ họa thì Web Feature Service sẽ gửi trả về thông tin không gian và thông tin thuộc tính có liên quan dưới dạng file GML (Geography Markup Languge), dạng XML và sau đó client sử dụng file XML này làm dữ liệu để tạo ra ảnh bản đồ
3.2.5 Ứng dụng RSS cập nhật mới cơ sở dữ liệu thời tiết
Web bản đồ thời tiết nhắm đến người sử du ̣ng là những người truy câ ̣p web bình thường, không đòi hỏi có kiến thức nhiều về lĩnh vực GIS Vì thế, hê ̣ thống được xây dựng dựa trên kiến trúc Client – Server Chiến lược phát triển theo hướng Ser ver-side được cho ̣n để giảm thiểu các chức năng phân tích cho phía người dùng
Hình 3.3 Mô hình hệ thống
Phía Client –side: chứa trình duyê ̣t web có chức năng hiển thi ̣ , gử i yêu cầu đến WebServer và nhâ ̣n kết quả trả về từ WebServer để hiển thi ̣
Phía Server -side: bao gồm các thành phần WebServer , Application Server , WFS Server và Data Server
Cơ chế hoa ̣t đô ̣ng của hê ̣ thống như sau:
(1
)
Request
New Data
(6 )
(7 )
Web
Data Server
Data Spatial
Data
Exchange
RSS Calling Program
HỆ THỐNG SERVER CỦA
TRANG WEB
(3 )
CSDL
(2 )
(4 ) (5
)