Tài liệu Luận văn Phát triển hệ thống hỗ trợ tìm đường trên các thiết bị di động có GPS: i
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Văn Bách
Phát triển hệ thống hỗ trợ tìm đường trên các
thiết bị di động có GPS
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-2010
ii
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Văn Bách
Phát triển hệ thống hỗ trợ tìm đường trên các thiết bị
di động có GPS
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. Nguyễn Ngọc Hóa
HÀ NỘI - 2010
iii
Lời cảm ơn
Trước tiên, tôi xin bày tỏ lòng cảm ơn chân thành đến TS.Nguyễn Ngọc Hóa,
người đã hết lòng chỉ bảo, hướng dẫn, cho tôi các phương pháp tiếp cận vấn đề, giúp
tôi giải đáp những thắc mắc, giải quyết các khó khăn mắc phải để có thể hoàn thành
được khóa luận này.
Tôi cũng xin chân thành cảm ơn các thầy cô ở khoa Công Nghệ Thông Tin đã hết
lòng truyền đạt cho tôi những kiến thức nền tảng về CNTT, giúp tôi có đủ kiến thức để
tiếp cận, hoàn thành được ...
58 trang |
Chia sẻ: haohao | Lượt xem: 1214 | Lượt tải: 3
Bạn đang xem trước 20 trang mẫu tài liệu Luận văn Phát triển hệ thống hỗ trợ tìm đường trên các thiết bị di động có GPS, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
i
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CƠNG NGHỆ
Nguyễn Văn Bách
Phát triển hệ thống hỗ trợ tìm đường trên các
thiết bị di động cĩ GPS
KHỐ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Cơng nghệ thơng tin
HÀ NỘI-2010
ii
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CƠNG NGHỆ
Nguyễn Văn Bách
Phát triển hệ thống hỗ trợ tìm đường trên các thiết bị
di động cĩ GPS
KHỐ 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. Nguyễn Ngọc Hĩa
HÀ NỘI - 2010
iii
Lời cảm ơn
Trước tiên, tơi xin bày tỏ lịng cảm ơn chân thành đến TS.Nguyễn Ngọc Hĩa,
người đã hết lịng chỉ bảo, hướng dẫn, cho tơi các phương pháp tiếp cận vấn đề, giúp
tơi giải đáp những thắc mắc, giải quyết các khĩ khăn mắc phải để cĩ thể hồn thành
được khĩa luận này.
Tơi cũng xin chân thành cảm ơn các thầy cơ ở khoa Cơng Nghệ Thơng Tin đã hết
lịng truyền đạt cho tơi những kiến thức nền tảng về CNTT, giúp tơi cĩ đủ kiến thức để
tiếp cận, hồn thành được khĩa luận này. Bên cạnh đĩ tơi cũng vin gửi lời cảm ơn đến
sự sự giúp đở nhiệt tình của nhà trường tạo điều kiện tốt nhất cho tơi để hồn thành
khĩa luận này.
Tơi xin gửi lời cảm ơn sâu sắc đến những người thân trong gia đình, họ đã động
viên rất nhiều về mặt tinh thần để tơi cĩ đủ nghị lực để hồn thành khĩa luận này. Tơi
cũng xin chân thành cảm ơn bạn bè tơi, những đã luơn luơn bên cạnh, động viên, tạo
mọi điều kiện thuận lợi nhất cho tơi trong quá trình hồn thành khĩa luận.
Hà Nội, tháng 5 năm 2010
Sinh viên
Nguyễn Văn Bách
iv
TĨM TẮT KHĨA LUẬN
Khĩa luận này trình bày những hiểu biết cơ bản về một hệ thống thơng tin địa lý
(GIS), cũng như các khái niệm liên quan. Qua việc xem xét một số hệ thống GIS tiêu
biểu, để cĩ thể hình dung được cách thức lưu trữ, quản lý dữ liệu trong một dữ liệu
khơng gian, nhằm phục vụ hiệu quả cho việc quản lý dữ liệu địa lý. Khĩa luận cũng
trình bày chi tiết về cấu trúc đánh chỉ số R-tree – một cấu trúc được dùng phổ biến cho
các CSDL khơng gian. Một số phương pháp xử lý truy vấn trong CSDL khơng gian
cũng được đưa ra ở mức tìm hiểu sơ qua.
Phần cuối của khĩa luận trình bày về việc xây dựng ứng dụng bản đồ trên thiết bị
di động hổ trợ GPS. Bằng việc sử dụng GoogleMaps để cung cấp các chức năng GIS
cơ bản cho người dùng, như hiển thị bản đồ, hướng dẫn lộ trình, tìm lộ trình theo vị trí
hiện tại, điểm đầu điểm cuối.
v
DANH MỤC TỪ VIÊT TẮT
Từ viết tắt Tiếng Anh Tiếng Việt
GIS Geographic informations
system
Hệ thống thơng tin địa lý
OGC Open Geospatial
Consortium
ESRI Environmental Systems
Research Institute
GRASS Geographic Resources
Analysis Support System
CSDL Cơ sở dữ liệu
NN Nearest Neighbor Hàng xĩm gần nhất
OR Obstacle range
ONN Obstacle nearest neighbour
ODJ Ostacle e-distance join
vi
MỤC LỤC
Mở đầu............................................................................................................... 1
CHƯƠNG 1. TỔNG QUAN VỀ HỆ THỐNG THƠNG TIN ĐỊA LÝ ............... 2
1.1. Khái niệm về hệ thống thơng tin địa lý .............................................................2
1.2. Lợi ích và hạn chế của việc sử dụng GIS ..........................................................3
1.3. OGC – OPENGIS.............................................................................................3
1.4. Khái niệm chung về bản đồ địa lý .....................................................................4
1.5. Tìm hiểu một số hệ thống GIS tiêu biểu............................................................5
1.5.1. MapInfo.....................................................................................................5
1.5.2. ArcViewcủa ESRI .....................................................................................5
1.6. MobileGIS........................................................................................................6
1.6.1. Hệ thống WebGIS .....................................................................................7
CHƯƠNG 2. TỔ CHỨC DỮ LIỆU TRONG GIS.............................................. 9
2.1. Tổ chức dữ liệu trong hệ thống thơng tin địa lý.................................................9
2.1.1. Mơ hình dữ liệu Vector............................................................................10
2.1.2. Hệ thống Raster .......................................................................................11
2.1.3. Mơ hình TIN............................................................................................13
2.2. Điểm qua cách tổ chức dữ liệu trong một số hệ thống GIS thơng dụng. ..........13
2.2.1. Tổ chức dữ liệu trong MapInfo ................................................................13
2.2.2. Tổ chức dữ liệu trong ArcGIS của ESRI..................................................14
2.2.3. Tổ chức dữ liệu trong GRASS .................................................................14
2.3. Tìm hiểu cấu trúc lưu trữ của Shapefile ..........................................................15
CHƯƠNG 3. XỬ LÝ TRUY VẤN KHƠNG GIAN......................................... 20
3.1. Cấu trúc R-Tree index.....................................................................................20
3.1.1. Cấu trúc của R-tree ..................................................................................20
3.1.2. Tìm kiếm và cập nhật trong R-tree...........................................................21
3.1.3. Cập nhật và các thao tác khác ..................................................................24
3.2. Tìm hiểu một số thuật tốn xử lý truy vấn trong CSDL khơng gian ................26
3.2.1. Xử lý truy vấn trong khơng gian O-clit ....................................................27
3.2.2. Xử lý truy vấn trong mạng khơng gian.....................................................28
3.2.3. Tìm đường đi trong cĩ khơng gian cĩ chướng ngại vật ............................28
3.3. Tìm hiểu về PostGIS.......................................................................................32
3.3.1. Giới thiệu.................................................................................................32
3.3.2. Sử dụng các chuẩn OpenGIS ...................................................................32
vii
3.3.3. Import dữ liệu GIS...................................................................................32
3.3.4. Xuất bản dữ liệu GIS ...............................................................................32
3.3.5. Tạo indexs ...............................................................................................33
3.3.6. Một số truy vấn spatial SQL đơn giản......................................................33
CHƯƠNG 4. XÂY DỰNG ỨNG DỤNG......................................................... 36
Dựa trên những kiến thức thu được, trong chương này, tơi sẽ trình bày về hệ thống
dẫn đường (navigator) thử nghiệm với mục đích minh họa những hiểu biết về hệ
thống thơng tin địa lý và các vấn đề xử lý truy vấn khơng gian..............................36
4.1. Một số ứng dụng dẫn đường phổ biến.............................................................36
4.1.1. Việt map..................................................................................................36
4.1.2. Pguider ....................................................................................................37
4.1.3. GoogleMaps cho mobile ..........................................................................37
4.2. Các chức năng của chương trình .....................................................................38
4.3. Mơ hình đề xuất..............................................................................................39
4.4. Lựa chọn ngơn ngữ.........................................................................................41
4.5. Tìm hiểu cơ chế hoạt động của hệ thống GPS.................................................42
4.5.1. Đo khoảng cách từ máy thu đến các vệ tinh .............................................43
4.5.2. Xác định vị trí hiện tại của các vệ tinh .....................................................44
4.6. Thử nghiệm ứng dụng.....................................................................................44
4.6.1. Các lớp chính của chương trình ...............................................................44
4.6.2. Screenshot của chương trình ....................................................................44
4.7. Nhận xét .........................................................................................................49
CHƯƠNG 5. KẾT LUẬN................................................................................ 50
5.1. Kết quả đạt được.............................................................................................50
5.2. Hạn chế ..........................................................................................................50
5.3. Hướng phát triển.............................................................................................50
1
Mở đầu
Ngày nay với sự phát triển mạnh mẽ của CNTT, các ứng dụng của CNTT đã
được đưa vào hầu hết các lĩnh vực của cuộc sống. Với sự trợ giúp của máy tính, các
cơng việc phức tạp được xử lý nhanh chĩng và chính xác. Cùng với sự phát triển của
Internet, việc chia sẽ thơng tin giữa các cá nhân, tổ chức hay làm việc qua mạng đã trở
nên dễ dàng và hiệu quả. Hệ thống thơng tin địa lý (Geographic Information System –
GIS) là một nhánh của CNTT đã trở thành một cơng cụ trợ giúp quyết định rất tốt cho
các tổ chức, chính phủ trong các lĩnh vực liên quan đến thơng tin địa lý.
Để hồn thành khĩa học của mình, tơi nhận thấy GIS là một hệ thống thơng tin
rất thú vị, việc tìm hiểu về GIS sẽ giúp tơi cĩ một cái nhìn sâu sắc hơn về một hệ thống
thơng tin, quản trị CSDL. Giúp tơi cĩ được cái nhìn ban đầu về phương pháp tiếp cận
để xây dựng, quản lý hiệu quả một hệ thống CSDL mơ phỏng thực tế - hệ thống CSDL
địa lý. Với động lực đĩ, khĩa luận tốt nghiệp của tơi hướng đến mục tiêu nghiên cứu,
tìm hiểu về hệ thống thơng tin địa lý nĩi chung, từ đĩ ứng dụng trong bài tốn phát
triển hệ thống dẫn đường dựa trên các thiết bị di động cĩ hỗ trợ định vị vệ tinh (GPS).
2
CHƯƠNG 1. TỔNG QUAN VỀ HỆ THỐNG THƠNG TIN ĐỊA LÝ
1.1. Khái niệm về hệ thống thơng tin địa lý
Hệ thống thơng tin địa lý (Geographic Information System – gọi tắt là GIS) là
một nhánh của cơng nghệ thơng tin được hình thành vào những năm 1960 và phát triển
rất rộng rãi trong 10 năm lại đây. GIS ngày nay là cơng cụ trợ giúp quyết định trong
nhiều hoạt động kinh tế - xã hội, quốc phịng của nhiều quốc gia trên thế giới. GIS cĩ
khả năng cung cấp cho các cơ quan chính phủ, các nhà quản lý, các doanh nghiệp, các
cá nhân … đánh giá được hiện trạng của các quá trình, các thực thể tự nhiên, kinh tế –
xã hội của các vùng địa lý thơng qua các chức năng thu thập, quản lý, truy vấn, phân
tích và tích hợp các thơng tin được gắn liền với một nền hình học (bản đồ) nhất quán
trên cơ sở tọa độ của các dữ liệu đầu vào.
Cĩ nhiều cách tiếp cận khác nhau khi định nghĩa GIS. Nếu xét dưới gĩc độ hệ
thống, thì GIS cĩ thể được hiểu như một hệ thống gồm 5 thành phầm cơ bản: con
người – chuyên viên, thiết bị - phần cứng, phần mềm, số liệu - cơ sở dử liệu và các
quy trình kiến thức chuyên gia – nơi tập hợp các quy phạm, tiêu chuẩn, định hướng,
chủ trương ứng dụng của nhà quản lý, các kiến thức chuyên ngành và các kiến thức về
CNTT.
Hình 1: Các thành phần thiết yếu cho cơng nghệ GIS
Theo cách tiếp cận truyền thống, GIS là một cơng cụ máy tính để lập bản đồ và
phân tích các sự vật, hiện tượng thực trên trái đất. Cơng nghệ GIS kết hợp các thao tác
CSDL thơng thường kết hợp với cho 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 GIS cĩ
3
phạm vi ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau (phân tích các sự kiện, dự
đốn tác động và hoạch định chiến lược).
1.2. Lợi ích và hạn chế của việc sử dụng GIS
GIS là một cơng nghệ ứng dụng tiến bộ của khoa học máy tính, do đĩ việc sử
dụng GIS trong các mục tiêu nghiên cứu so với các phương tiện cổ điển cĩ thể mang
lại hiệu quả cao.
- Tiết kiệm thời gian và chi phí trong việc lưu trữ số liệu.
- Cĩ thể thu thập số liệu với số lượng lớn.
- Cập nhật số liệu lưu trữ dễ dàng.
- Chất lượng số liệu được bảo đảm (quản lý, xử lý, sửa chữa).
- Dễ dàng truy cập, phân tích số liệu từ nhiều nguồn và nhiều loại khác
nhau.
- Tổng hợp số liệu nhanh chĩng và dễ dàng.
Bên cạnh những thuận lợi khi sử dụng GIS thì quá trình sử dụng kỹ thuật GIS
cũng xuất hiện một số trở ngại, và những trở ngại này cĩ ảnh hưởng đặc biệt quan
trọng, do đĩ cần cân nhắc kỹ càng trước khi quyết định phát triển GIS.
- Chi phí và những vấn đề kỹ thuật địi hỏi trong việc chuẩn bị lại các số
liệu thơ hiện cĩ, để chuyển từ bản đồ dạng thơ (trên giấy) sang dạng số trên
máy tính.
- Địi hỏi nhiều kiến thức của các kỹ thuật cơ bản về máy tính, và yêu cầu
lớn về nguồn tài chính ban đầu.
- Chi phí mua sắm, lắp đặt thiết bị và phần mềm GIS khá cao.
- Trong một số lĩnh vực ứng dụng, hiệu quả tài chính thấp.
1.3. OGC – OPENGIS
OGC – Open Geospatial Consortium là một tổ chức phi lợi nhuận, quốc tế, tự
nguyện đang dẫn đầu trong việc đặt ra các tiêu chuẩn về khơng gian địa lý và các dịch
vụ dựa trên vị trí.
OpenGIS standard and Specifications là các tài liệu kỹ thuật đặc tả các giao diện
hoặc bảng mã được dùng cho các nhà phát triển phần mềm để đưa các giao diện hoặc
bản mã này vào sản phẩm hay dịch vụ của họ. Các đặc tả này cung cấp cho các nhà
phát triển một khuơn mẫu giao diện chung, đầy đủ để cĩ thể xây dựng các phần mềm
hoạt động chung được với các phần mềm dạng OpenGIS khác.
4
Ưu điểm của OpenGIS Specification thể hiện qua các mặt sau:
- Đối với người phát triển ứng dụng cĩ thể dễ dàng và linh hoạt trong việc
thiết kế các phần mềm truy cập đến cơ sở dữ liệu địa lý, sử dụng chung những
nguồn tài nguyên địa lý. Từ đĩ cĩ thể chọn mơi trường phát triển hoặc cung cấp
những nền tảng ứng dụng đa dạng mà vẫn cĩ thể sử dụng lại.
- Đối với các nhà quản lý thơng tin: Giúp cho việc sử dụng hoặc phân phối
cơ sở dữ liệu địa lý, cung cấp những khả năng xử lý địa lý tới khách hàng, tích
hợp dữ liệu địa lý và xử lý vào một kiến trúc tính tốn liên hợp.
- Đối với người dùng cuối là những người hưởng lợi tối ưu, họ nhận được
sự truy nhập một cách nhanh chĩng đến một hệ thống thơng tin rộng lớn với
nhiều ứng dụng.
Với việc ra đời của OGC - OpenGIS giúp xây dựng nên một ứng dụng cĩ thể
tổng hợp các thơng tin từ nhiều hệ thống thơng tin địa lý khác nhau. Ví dụ: cổng thơng
tin địa lý (GeoPortal), GeoPortal cho phép tổng hợp các thơng tin từ các hệ thống địa
lý khác nhau thơng qua dịch vụ Web.
1.4. Khái niệm chung về bản đồ địa lý
Định nghĩa: 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ở tốn học, sử dụng các ký hiệu quy ướ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.
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 đồ là:
- Thủy 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
Để phục vụ được cơng tác địa lý, GIS phải lưu trữ đầy đủ các thơng tin địa lý này
của bản đồ, cung cấp các chức năng giúp quản lý, phân tích và hiển thị thơng tin địa lý.
Các tri thức này được thể hiện qua các tập thơng tin:
5
- Các bản đồ: giao diện trực tuyến với dữ liệu địa lý để tra cứu, trình bày
kết quả và sử dụng như là một nền giao thức với thế giới thực.
- Các thơng tin địa lý: chứa trong các tệp tin trong cơ sở dữ liệu gồm các
yêu tố cơ bản, mạng lưới, topology, địa hình, thuộc tính, …
- Các mơ hình xử lý: tập hợp các quy trình xử lý để phân tích tự động.
- Các mơ hình dữ liệu: GIS cung cấp các cơng cụ mạnh hơn là một CSDL
thơng thường, bao gồm các quy tắc và sự tồn vẹn dữ liệu giống như các hệ
thống thơng tin khác.
- Siêu dữ liệu (metadata) hay tài liệu mơ tả dữ liệu, cho phép người sử
dụng tổ chức, tìm hiểu và truy nhập được tới tri thức địa lý.
1.5. Tìm hiểu một số hệ thống GIS tiêu biểu
1.5.1. MapInfo
MapInfo là cơng cụ khá hữu hiệu để tạo ra và quản lý một CSDL địa lý trên máy
tính cá nhân, là một phần mềm tương đối gọn nhẹ và dễ sử dụng. Đặc biệt, dùng cho
mục đích giảng dạy và thành lập các bản đồ chuyên đề phân tích trong địa lý.
MapBasic là 1 ngơn ngữ lập trình trong mơi trường MapInfo cho phép phát triển
các ứng dụng GIS. Nĩ tạo ra các hệ thống giao diện người dùng thuận lợi và nhanh
chĩng như tạo thanh menu mới, hộp thoại điều khiển như ý muốn cho phép tiết kiệm
thời gian và tiện lợi cho việc triển khai ứng dụng.
MapBasic cũng cung cấp cơng cụ xử lý dữ liệu, đáp ứng các yêu cầu đa dạng về
dữ liệu. Nĩ cho phép truy vấn CSDL, lựa chọn và cập nhật dữ liệu bẳng các câu lệnh
theo cú pháp SQL. Hiển thị kết quả truy vấn theo khuơn dạng mong muốn.
Ngồi ra, MapBasic cho phép xây dựng chương trình cĩ cấu trúc mở vì nĩ cĩ khả
năng liên kết với các ứng dụng khác. Chương trình MapBasic cĩ thể gọi các thủ tục
trong các thư viện các tệp liên kết động của Windows DLL hoặc sử dụng dữ liệu
chuyển đổi động DDE (Dynamic Data Exchange) để lin kết với các phần mềm khác.
1.5.2. ArcViewcủa ESRI
ArcView là phần mềm thương mại của ESRI về hệ thống thơng tin địa lí (GIS).
Các chức năng cơ bản của ArcView GIS bao gồm:
- Chương trình ArcView GIS chạy trên nền Windows
- Hiển thị các lớp bản đồ dạng vector
- Tạo và thay đổi cơ sở dữ liệu của các đối tượng địa lí trong bản đồ
6
- Tạo các biểu đồ đơn giản dựa trên thuộc tính của các đối tượng trên bản
đồ
- Chuẩn bị các bản in ra giấy
Hình – ArcView chạy trên Windows
Ngồi ra ArcView GIS cịn hỗ trợ chức năng lập trình thơng qua ngơn ngữ lập
trình Avenue, được tích hợp sẵn trong phần mềm. ArcView GIS cũng cĩ khả năng cho
phép lập trình liên kết với các ngơn ngữ khác như VB, VC++.
ArcView GIS thích hợp cho những ứng dụng GIS nhỏ, đơn người dùng, thích
hợp cho việc nghiên cứu về GIS và giảng dạy trong các trường Đại học, Cao đẳng.
ArcView cung cấp ngơn ngữ kịch bản riêng của mình.
Các kho tài nguyên scripts mẫu do ESRI cung cấp với ArcView. Nhiều scripts cĩ
thể tải về miễn phí từ trang web ArcScripts của ESRI và đưa vào chương trình.
1.6. MobileGIS
Mobile GIS là phần mở rộng của hệ thơng tin địa
lý (GIS), cho phép các ứng dụng GIS cĩ thể hoạt động
trên thực địa thay vì hoạt động trong phịng. Mobile
GIS cho phép người sử dụng ở bên ngồi thực địa thu
thập, lưu trữ, cập nhật, thao tác, phân tích, và hiển thị
các thơng tin địa lý.
7
Mobile GIS tích hợp một hoặc nhiều các cơng nghệ sau:
- Các thiết bị Mobile
- Hệ thống định vị tồn cầu (GPS)
- Cơng nghệ truyền thơng khơng dây cho truy cập GIS Internet
ArcPad là giải pháp tồn diện GIS cho thiết bị cầm tay với mục đích cập nhật dữ
liệu cho hệ thống GIS như thu thập, truy vấn, phân tích và quản lý dữ liệu địa lý.
ArcPad cung cấp các chức năng đồng bộ hĩa dữ liệu với ArcGIS nhằm nâng cao
chức năng xử lý dữ liệu địa lý, cùng với khả năng chuyển đổi dữ liệu. ArcPad là cơng
cụ cho các chuyên gia về GIS bởi khả năng tích hợp hỗ trợ các thiết bị thu thập dữ
liệu cầm tay tiện ích và hiện đại.
Các khả năng chính
- Được xây dựng với các cơng cụ cập nhật dữ liệu địa lý mạnh, quản lý
dữ liệu khơng gian tốt, phục vụ quá trình chỉnh sửa, cập nhật thơng tin cho dữ
liệu khơng gian và thuộc tính.
- Cho phép sử dụng với các thiết bị như PPC, Smart Phone, Pcphone.
- Cho phép sử dụng nhiều dạng dữ liệu.
- Xây dựng và quản lý cơ sở dữ liệu, ứng dụng các đoạn mã chương
trình để xử lý các quy trình GIS tự động.
- Cho phép cập nhật dữ liệu GIS tự động và đơn giản hĩa, đồng thời
cho phép hiện thị và tạo các bản đồ chất lượng cao Hệ thống Mobile ArcGIS
Desktop
1.6.1. Hệ thống WebGIS
WebGIS l hệ thống thơng tin địa lý phân tán trên mạng máy tính để thu thập,
phân phát, truyền tải các thơng tin địa lý dựa trên nền cơng nghệ Web. Hệ thống
WebGIS sử dụng mơ hình kiến trúc khách – chủ. Mơ hình khách chủ cĩ thể triển khai
theo 3 cách tiếp cận “nhẹ khách” (thin client) , “nặng khách” (thick client), hoặc mơ
hình cân đối .
Mơ hình “nhẹ khách” cĩ nghĩa là hầu hết cơng việc xữ lý ở phía dịch vụ, phía
khách khơng làm gì nhiều hơn là hiển thị kết quả. Ưu điểm của mơ hình này là người
dùng khơng cần cài đặt thêm các ứng dụng. Máy khách nhẹ tải nên khơng cần cấu hình
cao. Tuy nhiên để giảm tải cho phía chủ cung cấp dịch vụ, các máy chủ Web, máy chủ
CSDL và WebGIS cĩ thể khơng tập trung trên một máy nền duy nhất mà phân tán trên
các máy chủ khác nhau và liên kết qua mạng. Vì ở máy khách chỉ cĩ nhiệm vụ hiển thị
kết quả do đĩ khi người sử dụng muốn sử dụng các thao tác với dữ liệu khơng gian, ví
8
dụ cập nhật một đối tượng, một khu vực địa lý trên bản đồ thì sẽ khĩ thực hiện. Do đĩ
mơ hình nhẹ khách là giải pháp đơn giản để xây dựng tập hệ thống bản đồ chủ yếu
phục vụ tra cứu, tìm kiếm thơng tin, chỉ sử dụng bộ duyệt web.
Mơ hình “nặng khách” đối lập với “nhẹ khách”. Phía khách đảm nhiệm thêm một
số chức năng xử lý, cần cài đặt thêm các tiện ích ví dụ các trình plug-in, ActiveX hay
Java-applets. Các tiện ích GIS plug-in mở rộng khả năng của bộ duyệt web, làm cho
nĩ cĩ khả năng xử lý các khuơn dạng dữ liệu GIS. Một số chức năng GIS đơn giản cĩ
thể do các trình plug-in hay các applet thực hiện tại phía khách, khơng cần gửi về máy
chủ dịch vụ giúp giảm bớt việc truyền dữ liệu trên mạng. Ưu điểm của giải pháp “nặng
khách” là khả năng tương tác cao hơn, người sử dụng được hịan thiện hơn. Nhược
điểm của giải pháp này chủ yếu là ở khâu phân phát cơng cụng phần mềm để cài đặt ở
máy khách.
Mơ hình “cân đối”, người thiết kế phải quyết định phân phối tính tốn giữa máy
chủ và máy trạm sao cho hợp lý cũng như cân nhắc, tính tốn dữ liệu truyền.
Ví dụ về mơ hình WebGIS: GoogleEarth (KML) là phần mềm GIS của Google
xây dựng trên phạm vi tồn cầu, nĩ được xây dựng trên nền tảng Client-Server nhờ sử
dụng KML để lưu trữ và quản lý dữ liệu. Cung cấp hệ thống bản đồ phong phú và đa
dạng, tốc độ xử lý nhanh.KML cĩ cấu trúc ngữ pháp XML và khuơn dạng dữ liệu để
mơ hình và lưu trữ các đối tượng đồ họa địa lý như các điểm, đường, ảnh và polygon
để hiển thị ở phía Client của GoogleEarth. Google Earth kết hợp với các hệ thống vệ
tinh để đưa ra các hình ảnh mới nhất và sống động nhất cho người dùng. GoogleEarth
là một sản phẩm phục tốt cho người dùng nghiệp dư, với các chuyên gia, GoogleEarth
vẫn chưa đáp ửng đủ yêu cầu.
9
CHƯƠNG 2. TỔ CHỨC DỮ LIỆU TRONG GIS
2.1. Tổ chức dữ liệu trong hệ thống thơng tin địa lý
GIS cung cấp đầy đủ các thơng tin địa lý của bản đồ, GIS lưu trữ các thành phần
của bản đồ thành 1 tập các lớp theo chủ đề, liên kết với nhau. Cách tiếp cận thành từng
lớp (layer) cho phép tổ chức thế giới thực phức tạp thành dạng đơn giản hơn, dễ quản
lý hơn.
Hình 2 – Tổ chức các lớp của thế giới thực
Trong hệ thống thơng tin địa lý, dữ liệu được chia làm hai loại dữ liệu cơ bản: dữ
liệu khơng gian và dữ liệu 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ị.
Dữ liệu khơng gian là dữ liệu về vị trí địa lý của các đối tượng theo một hệ tọa độ
hay hệ quy chiếu nào đĩ, 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 đối tượng địa lý cụ thể trên 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, … Dữ liệu khơng
gian cĩ thể biểu diễn bằng mơ hình dữ liệu raster hay mơ hình dữ liệu vector.
Dữ liệu phi khơng gian hay dữ liệu thuộc tính là những đặc tính, số lượng, mối
quan hệ kết nối logic giữa các dữ liệu khơng gian của các đối tượng bản đồ với vị trí
địa lý của chúng. Dữ liệu thuộc tính nĩi chung thuộc kiểu số, hoặc chữ số và chúng
được tổ chức lưu thành các bảng dữ liệu trong CSDL theo mơ hình quan hệ.
10
2.1.1. Mơ hình dữ liệu Vector
Mơ hình dữ liệu vector xem các sự vật, hiện tượng là tập các thực thể khơng gian
cơ sở và tổ hợp của chúng. Trong mơ hình 2D thì các thực thể cơ sở bao gồm: điểm
(point), đường (line), vùng (polygon). Các thực thể cơ sở này được hình thành trên cở
sở các vector hay toạ độ của các điểm trong một hệ trục toạ độ nào đĩ.
Loại thực thể cơ sở được sử dụng phụ thuộc vào tỷ lệ quan sát hay mức độ khái
quát của bản đồ. Với bản đồ cĩ tỷ lệ nhỏ thì thành phố được biểu diễn bằng điểm
(point), đường đi, sơng ngịi được biểu diễn bằng đường (line). Khi tỷ lệ thay đổi kéo
theo sự thay đổi về thực thể biểu diễn. Thành phố lúc này sẽ được biểu diễn bởi vùng
cĩ đường ranh giới. Khi tỷ lệ lớn hơn, thành phố cĩ thể được biểu diễn bởi tập các
thực thể tạo nên các đối tượng nhà cửa, đường sá, các trình tiện ích,… Cĩ thể nĩi mơ
hình dữ liệu vector sử dụng các đoạn thẳng hay các điểm rời rạc để biểu diễn các đối
tượng địa lý của thế giới thực.
Hình 2 – số liệu Vector được biểu diễn dưới dạng vùng (polygons)
Đối tượng điểm được biểu diễn dưới dạng một vector 2 chiều (x,y), xác định vị
trí của điểm đĩ trên bản đồ. Đối tượng là đường được xác định như tập hợp dãy của
các điểm, vùng được xác định bởi ranh giới các đường thẳng, những đối tượng này
được gọi là các polygons, được mơ tả bằng tập các đường và điểm nhãn (lable points).
Mơ hình dữ liệu vector định hướng đến các hệ thống quản trị cơ sở dữ liệu.
Chúng cĩ ưu việt trong việc lưu trữ số liệu bản đồ. Vì các thành phần đồ họa biểu diễn
các đặc trưng của bản đồ liên kết trực tiếp với các thuộc tính được lưu trong CSDL, do
đĩ việc tìm kiếm cĩ thể được thực hiện dễ dàng.
11
2.1.2. Hệ thống Raster
Mơ hình dữ liệu dạng raster phản ánh tồn bộ vùng nghiên cứu dưới dạng một
lưới các ơ vuơng hay điểm ảnh (cell). Độ phân giải dữ liệu raster phụ thuộc vào kích
thước của tế bào hay điểm ảnh, khác nhau từ vài chục dm đến vài km. Dữ liệu raster
gắn liền với dữ liệu dạng ảnh hoặc dữ liệu cĩ tính liên tục cao. Dữ liệu raster cĩ thể
biểu diễn được rất nhiều các đối tượng từ hình ảnh bề mặt đất đến ảnh chụp từ vệ tinh,
ảnh quét và ảnh chụp. Định dạng dữ liệu raster rất đơn giản nhưng hỗ trợ rất nhiều
kiểu dữ liệu khác nhau. 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 chứa 1 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.
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 tốn về mơi trường, quản lý thiên nhiên. Trong một hệ thống CSDL cơ
bản, raster được lưu trữ trong các ơ (thường hình vuơng) được sắp xếp trong một mảng
hoặc dãy các hàng và cột.
Trong cấu trúc dữ liệu raster, các điểm (points) cĩ thể được biểu diễn bằng một
cell. Line được biểu diễn bởi một tập các cell cĩ hướng xác định, độ rộng của line
bằng chiểu rộng của một cell. Polygon được biểu diễn bởi một dãy các cell nằm kề sát
nhau.
Hình 3 - Mảng cell và bảng thuộc tính
Hình 4 - Biểu diễn các đối tượng cơ sở trong raster
12
Cũng như mơ hình vector, mơ hình raster cĩ các tầng bản đồ cho địa hình, hệ
thống thủy lợi, sử dụng đất, … Tuy nhiên do cách thức xử lý thơng tin thuộc tính khác
nhau, nên mơ hình raster thường cĩ nhiều bản đồ hơn. Ví dụ, trong mơ hình vector để
biểu diễn mức độ ơ nhiểm của một “con sơng” cĩ thể được gán trực tiếp cho nĩ.
Nhưng trong mơ hình raster khơng làm được như vậy. Trước hết phải tạo lập tầng bản
đồ cho “con sơng”, sau đĩ tạo tầng bản đồ thứ hai để chỉ mức độ ơ nhiểm. Kết quả là
số lượng tầng bản đồ của một hệ thống raster tăng lên đáng kể so với mơ hình vector.
Ưu điểm của mơ hình raster là đơn giản, lưới là một bộ phận của bản đồ đã được
sử dụng để kiến tạo thơng tin địa lý. Khi các số liệu đầu vào là các ảnh vệ tinh hay ảnh
từ máy quét – cĩ khuơn mẫu lưới, chúng sẽ phù hợp cho mơ hình dữ liệu này. Lợi thế
lớn nhất của hệ thống raster là dữ liệu hình thành trong bản đồ trong bộ nhớ máy tính.
Do vậy, các thao tác kiểu như so sánh lưới tế bào được thực hiện dễ dàng. Tuy nhiên
hệ thống raster khơng thuận tiện cho việc biểu diễn đường, điểm vì mổi chúng là tập
các tế bào trong lưới, do đĩ đường thẳng dễ bị đứt đoạn hoặc rộng hơn thực tế.
Điểm yếu nhất của mơ hình dữ liệu raster là phải xử lý khối dữ liệu rất lớn. Nếu
độ phân giải của lưới càng thấp thì các thực thể trên bản đồ càng cĩ thể bị mất đi.
Ngược lại nếu độ phân giải cao thì phải lưu trữ một khối lượng lớn các thơng tin trong
CSDL.
Mơ hình dữ liệu vector cho ta nhiều thao tác hơn trên các đối tượng so với mơ
hình raster. Việc tính diện tích, đo khoảng cách của các đối tượng được trong mơ hình
Vector thực hiện bằng các tính tốn hình học từ toạ độ của các đối tượng thay vì việc
tính tốn trên các điểm ảnh như ở mơ hình raster.
Hình 3 – Kết hợp giữa mơ hình vector và raster
13
Mỗi mơ hình raster và vector đều cĩ những ưu và nhược điểm riêng. Tùy theo
mục tiêu sử dụng của GIS mà cĩ thể thiết kế chức năng biến đổi Raster/Vector nếu cần
thiết. Thơng thường người ta biểu diễn thế giới thực bởi sự kết hợp giữa giữ liệu
vector và raster.
2.1.3. Mơ hình TIN
Các ứng dụng mơ hình hố địa hình địi hỏi phương pháp biểu diễn độ cao so với
bề mặt nước biển. Cĩ rất nhiều mơ hình biểu diễn bề mặt thực hiện cơng việc này,
trong đĩ mơ hình “lưới tam giác khơng đều” - gọi tắt là mơ hình TIN được đánh giá là
hiệu quả nhất.
Hình 5 - Bản đồ với mơ hình dữ liệu TIN
TIN cĩ khả năng biểu diễn bề mặt liên tục từ những tập hợp điểm rời rạc. Về mặt
hình học, TIN là tập các điểm được nối với nhau thành các tam giác. Các tam giác này
hình thành nên bề mặt 3 chiều. Các điểm được lưu trữ cùng với giá trị gốc chiếu của
chúng. Các điểm này khơng cần phải phân bố theo một khuân mẫu nào và mật độ phân
bố cũng cĩ thể thay đổi ở các vùng khác nhau. Một điểm bất kỳ thuộc vùng biểu diễn
sẽ nằm trên đỉnh, cạnh hoặc trong một tam giác của lưới tam giác. Nếu một điểm
khơng phải là đỉnh thì giá trị hình chiếu của nĩ cĩ được từ phép nội suy tuyến tính (của
hai điểm khác nếu điểm này nằm trên cạnh hoặc của ba điểm nếu điểm này nằm trong
tam giác). Vì thế mơ hình TIN là mơ hình tuyến tính trong khơng gian 3 chiều cĩ thể
được hình dung như sự kết nối đơn giản của một tập hợp các tam giác.
Ta cĩ thể lưu trữ sơ đồ của TIN bằng danh sách liên kết đơi hoặc cấu trúc tứ
phân. Cả hai phương pháp này đều mơ tả cấu trúc hình học tơ pơ của bản đồ chia nhỏ.
2.2. Điểm qua cách tổ chức dữ liệu trong một số hệ thống GIS thơng dụng.
2.2.1. Tổ chức dữ liệu trong MapInfo
Các thơng tin trong MapInfo được tổ chức theo từng bảng, mỗi một bảng là một
tập các File về thơng tin đồ họa hoặc phi đồ họa chứa các bản ghi dữ liệu mà hệ thống
tạo ra. Cơ cấu tổ chức thơng tin của các đối tượng địa lý được tổ chức theo các File
sau đây:
14
- .tab: mơ tả khuơn dạng tab, chứa thơng tin để kết nối tất cả các tệp khác
trong ứng dụng MapInfo, thơng tin về kiểu dữ liệu.
- .dat hoặc .dbf: tệp chứa dữ liệu thuộc tính, cĩ cấu trúc tương tự như tệp
CSDL dBase III.
- .map: file chứa các thơng tin mơ tả đối tượng địa lý dưới dạng mã nhị
phân, cho phép hiển thị một bản đồ trên màn hình.
- .id: file chứa các thơng tin liên kết các đối tượng lại với nhau
- .ind: file chứa các chỉ số đối tượng
- .wor: tập tin lưu trữ tổng hợp các table hoặc các cửa số thơng tin khác
nhau của MapInfo.
2.2.2. Tổ chức dữ liệu trong ArcGIS của ESRI
Khuơn dạng shapefile được đưa vào sử dụng trong ArcGIS 2 từ đầu những năm
90. Thuật ngữ “shapefile” thường được dùng để chỉ một tập hợp nhiều tệp cĩ chung
tên nhưng với phần mở rộng khác nhau, cùng trong 1 thư mục. Để hiểu sâu hơn về cấu
trúc lưu trữ của một GIS ta sẽ đi sâu tìm hiểu shapefile như là một ví dụ ở phần sau.
2.2.3. Tổ chức dữ liệu trong GRASS
GRASS là một trong những ứng dụng GIS nguồn mở rất mạnh. GRASS nổi tiếng
về phân tích dữ liệu raster, điều mà chúng ta khơng thấy ở các GIS thương mại như
MapInfo Professional hoặc Arcview. Tuy nhiên, sau này các chức năng liên quan đến
dữ liệu vector cũng đang được phát triển.
Dữ liệu GIS trong GRASS nằm trong một thư mục được gọi là CSDL GIS
(GISDBASE). Trong CSDL GIS đĩ cĩ các thư mục con được gọi là LOCATION (vị
trí), trong các LOCATION cĩ các thư mục con gọi là MAPSET (bộ bản đồ). Các
mapset sẽ chứa các tệp và các thư mục con, gọi là các phần tử (thành phần) cơ sở dữ
liệu. Mỗi một phiên làm việc của GRASS chỉ được làm việc với một MAPSET trong
một LOCATION mà thơi. Nếu khơng cĩ dữ liệu sẵn, bạn phải tự tạo ra LOCATION
và MAPSET mới.
Bản đồ vector trong GRASS được lưu trữ theo các biểu diễn cung-nút, bao gồm
các đường cong gọi là cung. Một cung được lưu trữ như một danh sách các cặp tọa độ
x,y. Điểm đầu, điểm cuối của một cung được gọi là nude. Hai cặp tọa độ x, y liên tiếp
nhau xác định một đoạn (segment) của cung. Các cung đơn lẽ hay kết hợp với các
cung khác tạo ra các đối tượng bản đồ ở mức cao hơn. Các cung đơn lẽ tạo nên các
line biểu diễn các đối tượng như đường, sơng suối, … các cung bao quanh 1 vùng
được gọi là area edges hay areas lines.
15
Hình – Cấu trúc thư mục của Grass
Các tệp của cùng một lớp bản đồ vector cĩ cùng một tên, nhưng mỗi tệp nằm
trong một thư mục CSDL khác nhau trong mapset.
2.3. Tìm hiểu cấu trúc lưu trữ của Shapefile
Shapefile là một cấu trúc dữ liệu GIS được đưa ra bởi ESRI cho cácn phần
mềm hệ thống thơng tin địa lý, như một chuẩn mở cho việc chia sẽ dữ liệu giữa ESRI
và các phần mềm GIS khác. Một shapefile thường là 1 tập các files cùng tên với đuơi
.shp, .shx , .dbf,…
Shapefile dùng để mơ tả các đối tượng địa lý: điểm, đường, đa giác. Mổi đối
tượng cĩ các thuộc tính địa lý, ví dụ: tên, nhiệt độ, độ cao,…
Shapefile lưu trữ dữ liệu dưới dạng vector để chứa các đối tượng địa lý và các
thơng tin liên quan. Tuy nhiên, nĩ khơng cĩ khả năng chứa thơng tin mạng topo hình
học.
Shapefile lưu trữ các loại dữ liệu địa lý cơ bản của các điểm, đường, đa giác. Để
cĩ những thơng tin thuộc tính về các đối tượng để xác định đối tượng nào mà chúng
biểu diễn, một bảng các bản ghi sẽ chứa các thuộc tính cho mỗi đối tượng trong
shapefile. Những biểu diễn của các đối tượng địa lý (các điểm, các đường, các đa giác)
này cĩ thể tạo ra rất nhiều biểu diễn của dữ liệu địa lý cung cấp khả năng tính tốn địa
lý mạnh mẽ và chính xác.
16
Shapefile là một tập của một số file (thơng thường cĩ 3 file cơ bản). Mỗi file tuân
theo quy tắc đặt tên file của MS DOS.
3 file bắt buộc:
- .shp: thơng tin về dạng hình học của đối tượng địa lý.
- .shx: định dạng index của shapefile;
- .dbf: định dạng thuộc tính; các cột thuộc tính cho mỗi shape trong dBase
III.
Các file tùy chọn:
- .prj: định dạng projection; lưu thơng tin hệ tọa độ và thơng tin project, sử
dụng định dạng WKT.
- .sbn và .sbx: một kiểu index khơng gian của các đặc trưng (features).
- .fbn và .fbx: một index khơng gian của các đặc trưng cho những
shapefile chỉ đọc
- .ain và .aih: một index thuộc tính của các của các trường hoạt động trong
bảng hoặc trong các thuộc tính của bảng.
- …
Định dạnh của shapefile (.shp)
File chính (.shp) chứa dữ liệu tham chiếu của đối tượng địa lý chính trong
shapefile. Nĩ gồm 1 tiêu đề độ dài cố định theo sau bởi một hoặc nhiều bản ghi độ dài
cĩ thể thay đỗi. Mỗi bản ghi này chứa một thành phần bản ghi tiêu đề và một thành
phần bản ghi nội dung.
Tiêu đề của main file với chiều dài cố định: 100bytes:
(Trong các bảng, cột Endianness chỉ mức độ quan trọng của dữ liệu).
Bytes Type Endianness Usage
0-3 Int32 Big File code (always hex value 0x0000270a)
4-23 Int32 Big Unused; five uint32
24-27 Int32 Big File length (in 16-bit words, including the
header)
17
28–31 int32 little Version
32–35 int32 little Shape type (see reference below)
36–67 double little Minimum bounding rectangle (MBR) of
all shapes contained within the shapefile;
four doubles in the following order: min
X, min Y, max X, max Y
68-83 Double Little Range of Z; two doubles in the following
order: min Z, max Z
84-99 Double Little Range of M; two doubles in the
following order: min M, max M
File .shp chứa số lượng bản ghi thay đổi với số lượng bất kỳ. Mỗi bản ghi được
thêm vào đầu bởi 1 bản ghi tiêu đề dài 8bytes
Bytes Type Endianness Usage
0-3 Int32 Big Record number (1-based)
4-7 Int32 big Record length (in 16-bit words)
Theo sau bản ghi tiêu đề là bản ghi thật
Byte Type Endianness Usage
0-3 Int32 Little Shape type
4- - - Shape content
Nội dung của các bản ghi cĩ chiều dài thay đổi phụ thuộc vào loại của đối tượng
biểu diễn
18
Shapefile index (.shx)
File chỉ số của shapefile cũng chứa tiều đề 100-byte như .shp, theo sau bởi bất kỳ
một số các bản ghi cĩ độ dài cĩ định 8byte với 2 trường.
Bytes Type Endianness Usage
0-3 Int32 Big Record offset (in 16-bit words)
4-7 Int32 Big Record length (in 16-bit words)
Sử dụng chỉ số này, cho phép tìm giật lùi trong shapefile bằng cách tìm kiếm giật
lùi trong shape index, đọc record offset, và sử dụng nĩ để tìm đến vị trí tương ứng
trong .shp file. Tương tự, nĩ cũng cho phép tìm kiếm trên một số tùy ý bản ghi bởi
cùng phương pháp.
File dữ liệu (.dbf)
Các thuộc tính cho mỗi shape được chứa dưới dạng dBase. Một định dạng thay
thể cũng cĩ thể được sử dụng là xBase.
File định dạng Project (.prj)
19
Thơng tin Project được chứa trong .prj file giúp người dùng cĩ thể hiểu được dữ
liệu được chứa trong .shp file một cách chính xác. Mặc dù file này là tùy chọn, nhưng
nĩ thường luơn được tạo.
20
CHƯƠNG 3. XỬ LÝ TRUY VẤN KHƠNG GIAN
3.1. Cấu trúc R-Tree index
R-tree là một cây cân bằng tương tự như B-tree với các các bản ghi index trên
các nốt lá trỏ đến các đối tượng dữ liệu. Cấu trúc R-tree được thiết kế sao cho việc tìm
kiếm các đối tượng khơng gian sẽ cĩ số lượng lần thăm các node nhỏ nhất. R-tree cho
phép xĩa hoặc chèn các index mới mà khơng cần phải thường xuyên tổ chức lại.
Một CSDL khơng gian chứa một tập các tuples – biểu diễn cho các đối tượng
khơng gian và mỗi tuble cĩ một ID duy nhất. Trong R-tree các nốt lá chứa các bản ghi
index cĩ dạng:
(I, tuple – identifier)
Với tuple – identifier tham chiếu đến tuple trong CSDL và I là một hình chử nhật
n-chiều, là hộp bao của đối tượng khơng gian được index
I=(I0, I1,…, In-1)
Ở đây n là số chiều và Ii là một khoảng bị chặn đĩng [a, b] mơ tả sự mở rộng của
đối tượng theo chiều i. Tuy nhiên, Ii cĩ thể cĩ một hoặc hai điểm cuối bằng vơ cùng để
chỉ rằng đối tượng mở rộng vơ cùng theo hướng i. Một node khơng phải là lá chứa
những entries cĩ dạng
(I, child – pointer)
Với child-pointer là địa chỉ của node con trong R-tree và I bọc tất cả các hình chử
nhật trong các mục của node con.
3.1.1. Cấu trúc của R-tree
Đặt M là số lượng tối đa các entry trong 1 node, và m <= M/2 xác định số lượng
entry ít nhất phải cĩ trong 1 node. R-tree thõa mản các thuộc tính sau:
(1) Mọi node lá chứa từ m đến M bản ghi index trừ khi nĩ là root
(2) Với mỗi bản ghi (I, tuple-identifier) trong 1 node lá, I là hình chử
nhật nhỏ nhất chứa đối tượng khơng gian biểu diễn bởi tuple-identifier.
(3) Mỗi node khơng phải node lá cĩ từ m đến M con trừ khi nĩ là
root
(4) Với mỗi entry (I, child-pointer) trong 1 node khơng phải lá, I là
hình chử nhật nhỏ nhất bao các hình chử nhật con.
21
(5) Node root cĩ ít nhất 2 con trừ khi nĩ là lá.
(6) Tất cả các lá xuất hiện với cùng mức.
Hình 6 – Cấu trúc R-tree
Hình 6a, và 6b biểu diễn cấu trúc của một R-tree và minh họa mối quan hệ
bao hàm và chồng phủ lẫn nhau cĩ thể tộn tại giữa các hình chử nhật trong R-tree.
Chiều cao của một R-tree chứa N bản ghi index ít nhất là |logmN|-1, vì hệ số
nhánh của mỗi node ít nhất là m, số node tối đa là |N/m|+|N/m2|+..+1. Trường hợp
xấu nhất là tất cả các node chứa m entry. Thơng thường, các node thường cĩ nhiều
hơn m entry, vì vậy chiều cao của cây sẽ ít hơn |logmN|-1.
3.1.2. Tìm kiếm và cập nhật trong R-tree
Tìm kiếm
22
Thuật tốn tìm kiếm đi xuống từ root tương tự như B-tree. Tuy nhiên, do cấu
trúc bao hàm và chồng phủ lẫn nhau cĩ thể tồn tại nên số cây con được tìm kiếm cĩ
thể lớn hơn 1, vì vậy khơng thế đảm bảo một hiệu năng tốt trong trường hợp xấu
nhất. Tuy nhiên với hầu hết các loại dữ liệu thuật tốn update sẽ duy trì cây ở dạng
cho phép thuật tốn tìm kiếm đánh giá các miền khơng phù hợp của khơng gian
index, và chỉ xem xét những dữ liệu gần vùng tìm kiếm.
Thuật tốn Search. Cho một R-tree với node root là T, tìm tất cả các bản ghi
index chứa những hình chử nhật chồng lên hình chử nhật đang tìm S.
- S1[Tìm cây con] Nếu T khơng phải là lá, kiểm tra mỗi entry E của T để
xác định xem EI cĩ chồng lên S hay khơng. Với tất cả entries chồng, gọi hàm
Search trên cây mà node root được trỏ bởi Ep.
- S2[Tìm node lá] Nếu T là 1 lá, kiểm tra tất cả entry E để xác định EI cĩ
chồng lên S hay khơng. Nếu cĩ, E là 1 bản ghi “cĩ chất lượng”.
(Ở đây EI là hình chử nhật được trở đến bởi entry E, Ep là con trỏ trong entry E).
Chèn
Việc chèn các bản ghi index cho những tuples data mới cũng cĩ tư tưởng
tương tự như chèn trong B-tree: các bản ghi mới sẽ được thêm vào các lá, các node
bị tràn sẽ được cắt ra, và việc cắt sẽ lan truyền lên.
Thuật tốn Insert chèn 1 index mới E vào R-tree:
- I1 [Tìm vị trí cho bản ghi mới] Gọi hàm ChoseLeaf để tìm một node lá L
để đặt E.
- I2 [Thêm bản ghi vào node lá] Nếu L cĩ chố trống, đưa E vào L. Nếu
khơng gọi hàm SplitNode để được L và LL chứa E và tất cả các entries củ của
L.
- I3 [Lan truyền thay đổi lên trên] Gọi hàm AdjustTree trên L, cả LL nếu
xảy ra việc chia node.
- I4 [Mọc cây cao hơn] Nếu việc lan truyền chia node làm cho root cũng
bị chia, tạo một root mới cĩ các con là 2 node được tạo ra.
Thuật tốn AdjustTree: Đi lên từ node lá L đến root, điểu chỉnh các hỉnh chử
nhật bao phủ và lan truyền việc chia các node nếu cần thiết.
- AT1 [khởi tạo] Đặt N=L, nếu L đã bị chia trước đĩ, đặt NN là kết quả
thứ 2 (NN=LL).
- AT2[kiểm tra hồn thành] Nếu N là root, dừng
23
- AT3[điều chỉnh hình chử nhật bao trong entry cha]Đặt P là node cha của
node N, và EN là entry của N trong P. Điểu chỉnh ENI để nĩ bao quanh sít với
tất các entry hình chử nhật trong N.
- AT4[Lan truyền chia node lên trên] Nếu cĩ NN, tạo 1 entry mới ENN với
ENNp trỏ đến NN và ENNI bao quanh tất cả hình chử nhật trong NN. Thêm ENN
vào P nếu cịn chổ trống. Nếu khơng gọi hàm SplitNode để xử lý node P và PP
chứa ENN và các entries cũ của P.
- AT5[Di chuyển lên mức tiếp theo] Đặt N=P và đặt NN=PP nếu 1 phân
chia xảy ra. Lặp từ AT2.
Xĩa
Thuật tốn Delete. Xĩa bản ghi index E từ R-tree
- D1 [Tìm node chứa bản ghi] Gọi hàm FindLeaf để xác định vị trí của
node lá L chứa E. Dừng nếu khơng tìm thấy bản ghi.
- D2 [Xĩa bản ghi] Xĩa bản ghi E từ L
- D3 [lan truyền thay đổi] gọi hàm CondenseeTree cho L.
- D4 [Thu ngắn cây] nếu node root chỉ cĩ 1 cây con sau khi điều chỉnh
cây, đặt con thành root.
Thuật tốn FindLeaf. Cho 1 R-tree cĩ root node là T, tìm node lá chứa index
entry E.
- FL1 [tìm cây con] nếu T là khơng phải là node lá, kiểm tra mỗi entry F
trong T để xác định FI cĩ chồng lên EI hay khơng. Với mỗi entry nếu cĩ thì gọi
FindLeaf trên cây cĩ root trỏ bởi Fp cho đến khi tìm thấy E hoặc đến khi tất cả
entries đã được kiểm tra.
- FL2 [tìm node lá cho bản ghi] Nếu T là 1 lá, kiểm tra mỗi entry xem cĩ
phù hợp, nếu cĩ trả lại T.
Thuật tốn CondenseTree: cho 1 node lá L từ 1 entry đã bị xĩa, loại các node
nếu nĩ cĩ quá ít entry và xây dựng lại các entry của nĩ. Lan truyền loại các node
lên trên nếu cần thiết. Điều chỉnh tất các các hình chử nhật trên đường tới root, làm
cho nĩ nhỏ hơn nếu cĩ thể.
- CT1 [khởi chạy] đặt N=L, đặt Q là tập các node bị loại, Q=null
- CT2 [tìm entry cha] Nếu N là root đi tới CT6. Nếu khơng lấy P là cha
của N, và lấy EN là entry ở trong P trỏ đến N.
24
- CT3 [loại trừ những node dưới full] Nếu N cĩ ít hơn m entries, xĩa EN từ
P và thêm N vào tập Q.
- CT4 [điều chỉnh hình chử nhật bao] Nếu N chưa bị loại, điều chỉnh ENI
để bao sát tất cả các entries trong N.
- CT5 [di chuyển lên] Đặt N=P và lặp lại từ bước CT2
- CT6 [chèn lại những entrie mồ cơi] chèn lại tất cả các entries của các
node trong tập Q. Những entries từ những lá bị loại được chèn lại vào trong các
lá như trong thuật tốn Insert, nhưng những entries từ các node cao hơn phải
được đặt ở mức cao hơn của cây, để các lá của các cây con phụ thuộc của chúng
sẽ ở cùng mức như các lá của cây chính.
Phương pháp kết hợp các node under – full đưa ra ở trên là hiệu quả hơn cho
CSDL khơng gian so với phương pháp sử dụng ở B-tree. Với phương pháp như ở
B-tree (một under-full node cĩ thể được kết hợp với node anh em nào đĩ) sẽ làm
cho diện tích hình chử nhật bao của nĩ tăng lên. Mặc dù cả 2 phương pháp đều cĩ
thể gây ra phân chia node. Phương pháp đưa ra ở trên là hiệu quả hơn vì 2 lý do:
thứ nhất, dễ hơn để triển khai vì đều là Insert và tính hiệu quả của việc Insert đệ
quy là tốt hơn vì những trang cần trong quá trình chèn lại thường là giống với với
những trang đã thăm trong lúc tìm kiếm trước kia nên thường thì chúng đã cĩ sẵn
trong bộ nhớ. Lý do thứ hai là việc chèn lại này sẽ làm cấu trúc của cây trở nên tốt
hơn, và ngăn ngừa sự hư hỏng dần dần cĩ thể xảy ra nếu mổi entry được đặt cố
định dưới cùng node cha.
3.1.3. Cập nhật và các thao tác khác
Nếu một tuple dữ liệu được cập nhật thì hình chử nhật bao của nĩ củng bị
thay đổi, bản ghi index của nĩ cũng phải được xĩa, cập nhật, và sau đĩ chèn lại, do
đĩ nĩ sẽ phải tìm một vị trí phù hợp của nĩ trên cây.
Những loại tìm kiếm khác với tìm kiếm ở trên, ví dụ: để tìm tât cả các đối
tượng dữ liệu chứa hồn tồn một diện tích tìm kiếm, hoặc tất cả các đối tượng
chứa 1 vùng tìm kiếm, cĩ thể được thực hiện bởi sự biến đổi của các thuật tốn đã
đưa ra. Tìm kiếm một entry cĩ ID đã biết được yêu cầu bởi thuật tốn xĩa và được
thực hiện bởi thuật tốn FindLeaf. Những biến thể của xĩa miền, trong những
index entries của tất cả các đối tượng dữ liệu trong 1 vùng đăc biệt được xĩa, cũng
được hổ trợ bởi R-tree.
Chia Node
Để thêm 1 entry mới vào 1 node đã đầy chứa M entries, cần phải chia tập
M+1 entries thành 2 node. Việc chia phải được thực hiện sao cho các tìm kiếm tiếp
theo khả năng phải thăm cả 2 node càng thấp thì càng tốt. Vì một node cĩ được
chọn để để thăm hay khơng phụ thuộc vào hình chử nhật nĩ bao phủ cĩ bao vùng
tìm kiếm hay khơng, do đĩ để tối ưu, tổng diện tích của cả 2 hình hình chử nhật
25
bao phủ phải là nhỏ nhất. Hình 2 minh họa trường hợp này. Diện tích của hình chử
nhật trong trường hợp “bad split” lớn hơn nhiều trong trường hợp “good split”.
Hình 7 – Chia node
Khi thực hiện thuật tốn ChooseLeaf cũng xảy ra vấn đề tương tự. Do đĩ
thuật tốn để phân chia tập M+1 entries thành 2 nhĩm cĩ ảnh hưởng rất lớn đến
hiệu năng của R-tree và cần được tối ưu.
Một số thuật tốn phân chia:
Thuật tốn tồn diện
Cách dễ nhất để tìm một node bị chia cĩ diện tích nhỏ nhất là sinh ra tất cả
các nhĩm cĩ thể và chọn nhĩm tốt nhất. Tuy nhiên, với cách này số lượng các
nhĩm phải kiểm tra là 2M-1 mà trong R-tree giá trị hợp lý của M là 50, do đĩ số
lượng cách phân chia cĩ thể là rất lớn.
Thuật tốn Quadratic-Cost
Thuật tốn này cố gắng tìm một phép phân chia tối ưu, nhưng khơng đảm bảo
là tối ưu nhất. Chi phí của thuật tốn là dạng bậc 2 của M và tuyến tính theo số các
chiều. Thuật tốn lấy 2 trong số M+1 entries làm 2 thành phần đầu tiên của 2 group
mới, 2 entries sẽ được chọn sao cho nếu chúng cùng nằm trong một nhĩm thì sẽ
gây nhiều lãng phí nhất đến diện tích hình chử nhật bao của chúng. Cĩ nghĩa là
diện tích của hình chử nhật bao cả 2 entries, trừ đi diện tích của 2 entries, là lớn
nhất. Những entries cịn lại sẽ được phân vào từng nhĩm từng cái một. Ở mỗi
bước, việc thêm một entry vào một nhĩm được chọn sao cho diện tích mở rộng là
nhỏ nhất.
Thuật tốn Linear-Cost
Thuật tốn này tuyến tính theo M và số chiều. Liner Split cũng giống như
Quadratic Split nhưng phương pháp lựa chọn 2 entries đầu tiên và các entries thêm
vào sau đĩ khác so với Quadratic.
26
R*- tree
R*-tree là một biến thể của R-trees được sử dụng để đánh chỉ số các dữ liệu
khơng gian. R*-tree cung cấp thuật tốn chèn hiệu quả hơn của R-tree. Nĩ sử dụng
cơ chế forced reinsert để tổ chức lại cấu trúc của cây đánh chỉ số cho phù hợp. Cơ
chế này cho phép cấu trúc cĩ thể thích nghi với việc xuất bản dữ liệu và khơng bị
ảnh hưởng bởi các lần chèn trước. Các thử nghiệm cho thấy cấu trúc R*-tree cĩ
hiệu năng cao hơn so với cấu trúc R-tree. R*- tree được đề xuất bởi Norbert
Beckmann, Hans-Peetr Kriegel, Ralf Schneider, và Bernhard Seeger vào năm 1990.
GiST
GiST (Generalized Search Trees) indexes chia dữ liệu thành "things to one
side", "things which overlap", "things which are inside" và cĩ thể được sử dụng
trên một tập rộng các loại dữ liệu, bao gồm cả dữ liệu GIS.
3.2. Tìm hiểu một số thuật tốn xử lý truy vấn trong CSDL khơng gian
Phần này đưa ra một số phương pháp xử lý truy vấn trong CSDL địa lý cĩ các
chướng ngại vật. Hình 1 là một ví dụ của 1 truy vấn tìm điểm gần nhất cĩ sự ngăn cách
của chướng ngại vật.
Hình 8 – Truy vấn tìm hàng xĩm gần nhất
Bài tốn đặt ra là phải tìm điểm gần nhất của q, nhưng phải tính đến sự tồn tại
của các chướng ngại vật.
Mặc dù theo khoảng cách O-clit thì điểm a là gần hơn so với điểm b, nhưng điểm
gần nhất thực tế lại là điểm b. Trường hợp cụ thể của bài tốn là khi một khách hàng
muốn tìm một nhà hàng gần nhất, ở đây, chướng ngại vật chính là các tịa nhà, hồ, hay
những con đường mà khơng được đi, ...
Đã cĩ rất nhiều nghiên cứu cĩ giá trị trong lĩnh vực tính tốn địa lý, để giải quyết
những vấn đề về bộ nhớ, đường đi ngắn nhất giữa 2 điểm (cĩ tính đến các chướng ngại
vật). Những thuật tốn này thường sử dụng cách tạo ra một đồ thị, với mỗi node tương
ứng với 1 đỉnh của chướng ngại vật, và mỗi cạnh nối 2 đỉnh khơng cắt các chướng
ngại vật. Những thuật tốn này đều giả sử là cĩ thể giử được đồ thị trong bộ nhớ chính.
27
Tuy nhiên, trong cơ sở dữ liệu khơng gian điều này là khơng khả thi vì yêu cầu bộ nhớ
sẽ là cực lớn cho các tập dữ liệu khơng gian. Để giải quyết khĩ khăn đĩ, trong bộ nhớ
chính chỉ lưu đồ thị của khu vực hiện thời và chỉ những chướng ngại cĩ thể ảnh hưởng
đến kết quả của truy vấn.
Với phương pháp đưa ra dưới đây, xem rằng cĩ 1 hoặc nhiều tập dữ liệu của các
thực thể tạo nên các điểm ưa thích (nhà hàng, khách sạn,.. ) và 1 tập dữ liệu các vật
cản. Các thực thể ưa thích và các vật cản cũng được đánh chỉ số bởi R-tree.
3.2.1. Xử lý truy vấn trong khơng gian O-clit
R – tree trả lời truy vấn như được minh họa ở hình 9. Bắt đầu từ root, kiểm tra
các entries trên node root, xem entries nào giao với vùng tìm kiếm, sau đĩ đệ quy tìm
kiếm xuống các node trỏ đến bởi các entry này. Những entries khơng giao với vùng
tìm kiếm bị bỏ qua. Kết quả của bước này sẽ được đi qua một bước lọc sau đĩ đưa ra
kết quả chính xác.
Một truy vấn tìm hàng xĩm gần nhất (nearest-neighbour query N-N) trả về k
điểm dữ liệu (k>=1) gần nhất với điểm tìm kiếm. Thuật tốn R – tree NN (được đề
xuất bởi Hjaltason và Samet 1999) : giữ một bảng băm chứa các entries của các node
đã được thăm. Đầu tiên, bảng băm chứa các entries của root, sắp xếp theo thứ tự tăng
dần khoảng cách đến q. Sau đĩ, entry với với khoảng cách gần nhất sẽ được loại khỏi
bảng băm, và các entries của node con do nĩ trỏ đến được đưa vào bảng băm (đảm bảo
thứ tự khoảng cách đến điểm tìm kiếm). Và cứ tiếp tục như thế cho đến khi tìm đến lá
của cây.
Hình 9 – Tìm kiếm trong R-tree
Áp dụng thuật tốn với trường hợp trong hình 9, giá trị trong bảng băm lần lượt
sẽ là : E2, E1 E1,E5,E6,E7E3,E4,E5,E6,E7 và kết quả là điểm a, nằm trong E3.
Truy vấn E-distance join tìm tất cả các cặp đối tượng (s, t) với s thuộc S, t thuộc
T sao cho khoảng cách giữa chúng nhỏ hơn một số e cho trước. Nếu cả 2 tập dữ liệu S
và T được đánh chỉ số bởi R – tree thì thuật tốn R-tree join (Brinkhoff 1993) sẽ duyệt
đồng thời cả hai cây, đi theo những cặp entry mà khoảng cách của chúng ≤ e.
28
Thuật tốn intersection join, cĩ thể được dùng cho các đối tượng miền, trả về tất
cả các cặp đối tượng giao nhau trong hai tập dữ liệu S và T. Nĩ cĩ thể được xem như
là 1 trường hợp đặc biệt của e-distance join, với e=0.
Truy vấn cặp gần nhất (closest-pairs query) đưa ra k (k ≥ 1) cặp điểm (s,t) với
khoảng cách (O-clit) nhỏ nhất. Thuật tốn để xử lý những truy vấn này (Corral 2000)
kết hợp những phép nối khơng gian với một phép tìm kiếm hàng xĩm gần nhất.
3.2.2. Xử lý truy vấn trong mạng khơng gian
Papadias (2003) nghiên cứu những loại truy vấn trên cho cơ sở dữ liệu khơng
gian. Trong cơ sở dữ liệu mạng khơng gian, mạng được mơ hình hĩa bởi 1 đồ thị và
được biểu diễn dưới dạng các danh sách điểm kề. Các thực thể khơng gian được đánh
chỉ số độc lập bởi R-trees và được ánh xạ vào cạnh gần nhất trong quá trình xử lý truy
vấn. Khoảng cách của 2 điểm được định nghĩa là khoảng cách của đường dẫn gần nhất
nối 2 điểm đĩ trong đồ thị. Cĩ hai frameworks được đề xuất để giảm bớt khơng gian
tìm kiếm là khơng gian O-clit hạn chế và mạng mở rộng.
Frameworks khơng gian O-clit hạn chế sử dụng thuộc tính đường bao thấp của
khơng gian Ơ-clit. Với một truy vấn dãy tìm tất cả các đối tượng trong mạng cách q
một khoảng e. Phương thức hạn chế O-clit đầu tiên thực hiện try vấn dãy thơng thường
ở các tập dữ liệu thực thể và trả về mơt tập các đối tượng S’ cách q một khoảng e. Nhờ
thuộc tính đường bao thấp, S’ sẽ chứa tất cả các điểm phù hợp. Sau đĩ, khoảng cách
thực (khoảng các mạng – network distance) của tất cả các điểm trong S’ được tính, và
những điểm khơng phù hợp được loại bỏ. Phương pháp tương tự cũng được sử dụng
cho những loại truy vấn khác, kết hợp với 1 vài bước tối ưu để giảm số lượng của việc
tính tốn khoảng cách mạng.
Frameworks mở rộng mạng thực hiện xử lý truy vấn trực tiếp trên mạng mà
khơng sử dụng thuộc tính bao thấp của khơng gian O-clit. Với ví dụ ở trên, đâu tiên
mở rộng mạng xung quanh điểm truy vấn và tìm tất cả các cạnh nằm trong khoảng e từ
q. Sau đĩ thực một phép giao để lấy những thực thể nằm trên những cạnh này. Các
truy vấn hàng xĩm gần nhất, phép nối, và cặp gần nhất cũng được xử lý với phương
pháp tương tự.
3.2.3. Tìm đường đi trong cĩ khơng gian cĩ chướng ngại vật
Những vấn đề về tìm đường đi trong khơng gian cĩ các chướng ngại vật đã được
nghiên cứu rộng rãi trong Computational Geometry (de Berg et al. 1997).
Bài tốn đặt ra: Cho một tập O các chướng ngại vật khơng giao nhau (các đa
giác) trong khơng gian 2D, 1 điểm bắt đầu pstart và 1 điểm đích pend, mục đích là tìm
đường dẫn ngắn nhất từ pstart đến pend mà khơng cắt qua chướng ngại vật nào. Đồ thị G
tương ứng như trong hình 3(b). Đồ thị được tạo bởi các đỉnh của các chướng ngại vật
và 2 điểm pstart và pend. Hai node ni và nj trong G được nối với nhau bởi một cạnh nếu
và chỉ nếu cạnh đĩ khơng cắt chướng ngại vật. Vì các cạnh của chướng ngại vật khơng
cắt chính nĩ, do đĩ chúng cũng chứa trong G.
29
Hình 10 – Đồ thị G trong khơng gian cĩ chướng ngại vật
Trong Lozano-Pérez and Wesley 1979, đã định nghĩa đường dẫn ngắn nhất là
đường chỉ chứa những cạnh của đồ thị. Do đĩ, vấn đề được giải quyết bởi: (1) xây
dựng đồ thị G và (2) tính tốn khoảng cách ngắn nhất giữa pstart và pend trong G. Việc
tính tốn khoảng cách ngắn nhất giữa pstart và pend được thực hiện bằng cách sử dụng
thuật tốn tìm đường đi ngắn nhất Dijkstra. Vì vậy, vấn đề chỉ cịn là xây dựng đồ thị
G.
Truy vấn cĩ chướng ngại vật
Cho một tập các chướng ngại vật O, 1 tập các thực thể P, một điểm truy vấn q và
khoảng cách là e, một truy vấn cĩ chướng ngại vật (obstacle range – OR) trả về tất cả
các thực thể trong P cĩ khoảng cách thực với q là e. Thuật tốn OR xử lý truy vấn này
như sau: (1) Xây dựng tập các ứng cử P’ cĩ khoảng cách O-clit đến q ≤ e; (2) Xây
dựng tập O’ các chướng ngại liên quan đến truy vấn; (3) Xây dựng một đồ thị cục bộ
G’, chứa các thành phần của P’ và O’; (4) Loại bỏ những đối tượng khơng đạt trong P’
bằng cách đánh giá khoảng cách thực của chúng cho mỗi ứng cử sử dụng đồ thị G’.
Xem xét ví dụ trong hình 12(a) với e=6. Những vùng màu sẩm là các chướng
ngại vật và các điểm là các thực thể. Tập P’ chứa các thực thể giao với hình trịn C tâm
q với bán kính e. Để loại bỏ các thực thể khơng đúng, chúng ta cần cĩ được các
chướng ngại vật thích hợp. Nhận xét rằng: những chướng ngại vật giao với hình trịn C
là những chướng ngại vật cĩ thể liên quan đến kết quả của truy vấn. Theo thuộc tính
đường bao thấp O-clit, bất kỳ đường dẫn nào bắt đầu ở q và kết thúc ở đỉnh bất kỳ của
một chướng ngại vật nằm ở ngồi C thì sẽ cĩ độ dài lớn hơn e. Vì vậy, các chướng
ngại vật này sẽ bị loại bỏ. Do đĩ tập O’ các chướng ngại thích hợp cĩ thể nhận được
bởi 1 truy vấn dãy (tâm tại q với bán kính e) trên R-tree của O. Đồ thị cục bộ G’ được
vẽ ở hình 12(b). Để xây dựng đồ thị ta sử dụng thuật tốn của (Sharir and Schorr 1984).
30
Hình 12 – Truy vấn cĩ chướng ngại vật
Bước cuối cùng là đánh giá khoảng cách thực của q đến mỗi ứng cử. Để tối ưu
việc tính tốn, OR mở rộng đồ thị xung quanh điểm truy vấn q chỉ một 1 lần cho tất cả
các ứng cử sử dụng phương thức tree traversal tương tự như trong thuật tốn Dijkstra.
Đặc biệt, OR chứa một hàng đợi ưu tiên Q. Q được khởi tạo chứa các hàng xĩm của q,
sắp xếp theo khoảng cách thực của chúng đến q. Vì những hàng xĩm này nối trực tiếp
đến q, khoảng cách thực của chúng dO(ni,q), với 1≤i≤4, bằng khoảng cách O-clit
dE(ni,q). Node đầu tiên (n1) được đưa vào hàng đợi và chèn vào tập các node đã thăm
V. Với mỗi hàng xĩm chưa được thăm nx của n1, dO(nx,q) được tính (sử dụng n1 như
một node trung gian). Nếu dO(nx,q) ≤ e, nx được chèn vào Q.
Truy vấn hàng xĩm gần nhất
Cho một điểm truy vấn q, một tập chướng ngại vật O và một tập thực thể P, một
truy vấn hàng xĩm gần nhất trong khơng gian cĩ chướng ngại vật (obstacle nearest
neighbour - ONN) trả về k đối tượng trong P cĩ khoảng cách thực nhỏ nhất đến q. Ý
tưởng chung của thuật tốn ONN như sau: đầu tiên, lấy ra hàng xĩm O-clit gần nhất
của q (a) (sử dụng 1 thuật tốn tiền lời - e.g.Hjaltason and Sammet 1999), và dO(a,q)
được tính. Do thuộc tính đường bao thấp O-clit, các đối tượng cĩ khoảng cách thực
nhỏ hơn a sẻ nằm trong khoảng dEmax = dO(a,q). Sau đĩ, hàng xĩm O-clit (f) trong
khoảng dEmax được lấy ra, và khoảng cách thực của nĩ (dO(f,q)) được tính. Vì dO(f,q) <
dO(a,q), f trở thành NN hiện tại, và dEmax được cập nhật thành dO(f,q).
31
Hình 13 – Truy vấn hàng xĩm gần nhất trong khơng gian cĩ chương ngại vật
Thuật tốn dừng khi khơng cịn hàng xĩm O-clit gần nhất nào của q trong khoảng
dEmax.
Phép nối e-distance
Cho một tập các chướng ngại vật O, hai tập thực thể S, T và giá trị e. Một truy
vấn nối e-distance (Ostacle e-distance join – ODJ) trả về tất cả các cặp thực thể (s,t)
với sєS, tєT và dO(s,t) ≤ e. Dựa trên thuộc tính đường bao thấp Ơ-clit, thuật tốn ODJ
được thực hiện như sau: (1) Thực hiện một phép nối O-clit e-distance trên các cây R-
trees của S và T để nhận được các cặp thực thể (s,t) với dE(s,t) ≤ e; (2) Tính tốn cho
dO(s,t) cho mỗi cặp ứng cử (s,t) và xĩa những cặp khơng phù hợp.
32
3.3. Tìm hiểu về PostGIS
3.3.1. Giới thiệu
PostGIS là một phần mở rộng của cơ sở dữ liệu đối tượng quan hệ PostgreSQL
cho phép các đối tượng GIS được lưu trữ trong CSDL. PostGIS được phát triển bởi
Refractions Research Inc.
PostGIS hổ trợ lưu trữ các đối tượng GIS cơ bản - như được định nghĩa bởi
OpenGIS. PostGIS biểu diễn các đối tượng khơng gian theo hai dạng chuẩn: chuẩn
định dạngWell-Know-Text (WKT) và định dạng Well-Know Binary (WKB). Ngồi ra
khi lưu trữ các đối tượng khơng gian, OpenGIS yêu cầu trong dữ liệu lưu phải chứa
một tham chiếu đến hệ thống nhận diện khơng gian (SRID).
3.3.2. Sử dụng các chuẩn OpenGIS
OpenGIS định nghĩa các loại đối tượng GIS chuẩn, các chức năng để thao tác với
chúng, và một tập các bảng meta-data. Trong PostGIS cĩ 2 bảng meta-data theo chuẩn
của OpenGIS là: SPATIAL_REF_SYS và GEOMETRY_COLUMNS.
Tạo một bảng với dữ liệu khơng gian, được thực hiện theo 2 bước:
• Tạo một bảng non-spatial bình thường
• Thêm cột khơng gian vào bảng sử dụng hàm “AddGeometryColumn”
của OpenGIS
Cú pháp là:
AddGeometryColumn(
,
,
,
,
,
)
Hoặc:
AddGeometryColumn(
,
,
,
,
)
3.3.3. Import dữ liệu GIS
Cĩ hai cách để đưa dữ liệu vào một csdl PostGIS/PostgreSQL: sử dụng các câu
lệnh dạng SQL hoặc sử dụng chương trình tải shapefile – sh2gpsql.
3.3.4. Xuất bản dữ liệu GIS
Dữ liệu trong PostGIS/PostgreSQL cũng cĩ thể được xuất bản bằng câu lệnh
SQL hoặc các trình loader/dumper shapefile.
33
3.3.5. Tạo indexs
Đánh chỉ số cho phép các trình lên kế hoạch của một CSDL đưa ra những
phương pháp xử lý truy vấn hiệu quả giúp giảm thời gian thực hiện, cũng như tài
nguyên hệ thống. Với các CSDL thơng thường cấu trúc đánh chỉ số phổ biến là B-
trees. Nhưng với CSDL khơng gian, phương pháp đánh chỉ số B-tree khơng cịn phù
hợp. PostgreSQL mặc định hổ trợ 3 loại đánh chỉ số: B-Tree indexes, R-Tree indexes
và GiST indexes.
• B-Trees được sử dụng cho những dữ liệu cĩ thể sắp xếp theo 1 trục; ví dụ: số,
ký tự, ngày tháng. Dữ liệu GIS khơng thể được sắp xếp một cách logic theo trục, do đĩ
B-Tree indexes khơng phù hợp.
• R-Trees chia dữ liệu thành những hình chử nhật, và những hình chử nhật con,
và những hình chử nhật con, … R-Tree được sử dụng cho một số CSDL khơng gian để
đánh chỉ số CSDL khơng gian, nhưng hiệu năng của R-tree trong PosstgreSQL khơng
mạnh bằng GiST.
• GiST (Generalized Search Trees) indexes chia dữ liệu thành "things to one
side", "things which overlap", "things which are inside" và cĩ thể được sử dụng trên
một tập rơng các loại dữ liệu, bao gồm cả dữ liệu GIS. PostGIS sử dụng 1 R-Tree
index trên đỉnh của GiST để đánh chỉ số dữ liệu GIS.
Cú pháp để xây dựng một GiST index trên một cột “geometry” là :
CREATE INDEX [indexname] ON [tablename] USING GIST ( [geometryfield]
);
3.3.6. Một số truy vấn spatial SQL đơn giản
Trong PostGIS cung cấp các hàm xử lý khơng gian, giúp cho việc truy vấn khơng
gian đạt hiệu quả. Để sử dụng PostGIS hiệu quả yêu cầu phải biết về các hàm khơng
gian đang cĩ, và sử dụng một cách hợp lý để cĩ thể đạt được hiệu năng truy vấn tốt.
Các ví dụ dưới đấy sẽ sử dụng 2 bảng, 1 bảng các đường đường phố, và 1 bảng
các đa giác đường biên đơ thị.
Bảng các đường phố bc_roads:
Column | Type | Description
--------+-----------------+-------------------------
gid |integer | Unique ID
name |character varying| Road Name
the_geom| geometry | Location Geometry (Linestring)
34
Bảng các đa giác đường biên đơ thị bc_municipality:
Column | Type |Description
--------+-----------------+------------------------
gid |integer |Unique ID
code |integer |Unique ID
name |character varying|City / Town Name
the_geom| geometry |Location Geometry (Polygon)
Tổng số chiều dài của các đường là bao nhiều (km) - sử dụng hàm ST_Length để
tính độ dài đường?
SELECT sum(ST_Length(the_geom))/1000 AS km_roads FROM
bc_roads;
Diện tích của thành phố Prince George là bao nhiêu (hectar) – sử dụng hàm
ST_Area để tính diện tích một đa giác ?
SELECT ST_Area(the_geom)/10000 AS hectares
FROM bc_municipality
WHERE name = ’PRINCE GEORGE’;
Khu vực nào là rộng nhất trong tỉnh (theo diện tích) ?
SELECT name,ST_Area(the_geom)/10000 AS hectares
FROM bc_municipality
ORDER BY hectares DESC
LIMIT 1;
Độ dài của đường đầy đủ chứa trong mỗi đơ thị là gì - hàm ST_Contains kiểm
tra xem một đối tượng geometry cĩ được chứa trong một đối tượng geometry khác hay
khơng?
SELECT m.name,sum(ST_Length(r.the_geom))/1000 as roads_km
FROM bc_roads AS r,bc_municipality AS m
WHERE ST_Contains(m.the_geom,r.the_geom)
35
GROUP BY m.name
ORDER BY roads_km;
Kết quả trả về:
name | roads_km
----------------+------------------------------
SURREY | 1539.47553551242
VANCOUVER | 1450.33093486576
LANGLEY DISTRICT| 833.793392535662
BURNABY | 773.769091404338
PRINCE GEORGE | 694.37554369147
Tạo một bảng lưu tất cả các đường trong thanh phố Prince George – hàm
ST_Intersects trả về các đối tượng geometry giao nhau.
CREATE TABLE pg_roads as
SELECT ST_Intersection(r.the_geom, m.the_geom) AS
intersection_geom,
ST_Length(r.the_geom) AS rd_orig_length, r.*
FROM bc_roads AS r,bc_municipality AS m
WHERE m.name = ’PRINCE GEORGE’ AND
ST_Intersects(r.the_geom, m.the_geom);
36
CHƯƠNG 4. XÂY DỰNG ỨNG DỤNG
Dựa trên những kiến thức thu được, trong chương này, tơi sẽ trình bày về hệ thống dẫn
đường (navigator) thử nghiệm với mục đích minh họa những hiểu biết về hệ thống
thơng tin địa lý và các vấn đề xử lý truy vấn khơng gian.
4.1. Một số ứng dụng dẫn đường phổ biến
4.1.1. Việt map
Việt map cung cấp các ứng dụng cho các thiết bị di động tích hợp GPS (hoặc khơng)
với các chức năng dẫn đường hồn thiện, giao diện thân thiện, và chi tiết cho các bản
đồ tại Việt Nam. Các dịch vụ cơ bản mà một ứng dụng dẫn đường GPS của VietMap
cung cấp:
- Bản đồ điện tử 64 tỉnh thành Việt Nam với thơng tin số nhà, thơng tin giao
thơng được cập nhật liên tục.
- Thơng tin phong phú với các điểm du lịch, nhà hàng, khách sạn, ngân hàng,
trạm xăng,... trên tồn quốc.
- Định vị, tìm đường và hướng dẫn lộ trình bằng hệ thống định vị tồn cầu GPS.
- Giao diện và giọng nĩi hướng dẫn lộ trình bằng tiếng Anh, tiếng Việt hoặc
tiếng Hoa.
- Chức năng lưu các điểm ưa thích cá nhân.
Hình 14 – Vietmap navigator cho ơ tơ
Tuy nhiên các ứng dụng này chỉ cung cấp dữ liệu bản đồ cho các vùng trong nước, do
đĩ khơng thể sử dụng khi đi ra nước ngồi. Và các ứng dụng này là các ứng dụng mất
phí.
37
4.1.2. Pguider
Pguider cũng cung cấp các ứng dụng bản đồ khá hồn chỉnh cho các thiết bị di động cĩ
GPS. Cung cấp giao diện thân thiện, dễ sử dụng và các chức năng hướng dẫn đường đi
đầy đủ:
- Hiển thị bản đồ, với CSDL bản đồ của 18 tĩnh thành trên cả nước
- Chức năng tìm địa điểm, chức năng tìm đường phố.
- Chức năng hiển thị thơng tin vị trí theo GPS
- Chức năng dẫn đường
- Chức năng quản lý các điểm ưa thích
Hình 15 – Pguider trên windows mobile
Pguider cung cấp các chức năng cũng như dữ liệu khơng tốt như của Vietmap, tuy
nhiên đây là một ứng dụng miễn phí.
4.1.3. GoogleMaps cho mobile
GoogleMaps for mobile, cung cấp khá đầy đủ các chức năng bản đồ cho các thiết bị di
động. Nhất là các thiết bị chạy hệ điều hành Android.
- Hiển thị bản đồ tồn thế giới.
38
- Hướng dẫn đi đường (Navigation) chỉ ở các máy Android
- Tìm đường đi (cĩ cả tìm kiếm bằng dọng nĩi)
- Cung cấp hiện trạng giao thơng (chỉ ở một số thành phố)
- Xây dựng bản đồ cá nhân
- Cung cấp chết độ streetview ở một số thành phố.
Hình 16 – GoogleMaps for mobile
Tuy nhiên các ứng dụng thực sự chỉ mới cĩ ở Android, Iphone, Nokia S60, Windows
mobile. Các dịng thiết bị khác cĩ được là do truy cập vào trang map.google.com, do
đĩ các thiết bị này phải cĩ một browser hiệu quả.
4.2. Các chức năng của chương trình
Hiện nay với sự phát triển mạnh của cơng nghệ phần cứng, các thiết bị di động
được trang bị các bộ vi xử lý cĩ hiệu năng cáo và đã cĩ thể xử lý những thao tác phức
tap. Các thiết bị đã được cung cấp các chip wireless giúp cho việc kết nối Internet dễ
dàng và hiệu quả. Ở Việt Nam hiện nay, đặc biệt là tại hà nội, các điểm truy nhập
wireless xuất hiện nhiều và dịch vụ 3G cũng đã được phát triên giúp cho người sử
dụng các thiết bị dễ dàng kết nối Internet mọi lúc mọi nơi.
Các chức năng chi tiết mà ứng dụng cung cấp:
- Được xây dựng để hoạt động trên các thiết bị mobile, cĩ tích hợp GPS
hoặc khơng.
- Hiển thị bản đồ, di chuyển ở các mức zoom level khác nhau
39
- Nếu thiết bị cĩ tích hợp GPS, xác định vị trí hiện tại của người dùng
thơng qua GIS, hiển thị vị trí hiện tại của người dùng.
- Cung cấp cơng cụ tìm đường, hiển thị đường đi.
- Cup cấp thơng tin hưởng dẫn đi đường cho người dùng. Với các thiết
bị cĩ hổ trợ GPS, cung cấp chức năng hướng dẫn theo thời gian thực.
4.3. Mơ hình đề xuất
Tham khảo một số ứng dụng về bản đồ trên các thiết bị di động, tơi đưa ra một ý
tưởng để xây dựng một ứng dụng trợ giúp tìm đường cho người dùng, sử dụng hệ quản
trị CSDL PostgreSQL quản lý các dữ liệu địa lý, và thực hiện các truy vấn của người
dùng sau đĩ trả về kết quả.
Hình 17 - Mơ hình chương trình
Nhưng do thời gian thực hiện cĩ hạn, do đĩ tơi đã sử dụng server của
GoogleMaps để làm Server cung cấp các dữ liệu địa lý cũng như xử lý các truy vấn địa
lý của mình.
Tơi đã đưa ra hai ý tưởng:
- Cài đặt một Server hổ trợ chạy Javascript, sau đĩ sẽ sử dụng thư viện
GoogleAPI của Google thực hiện các truy vấn của client, và trả về kết quả cho
client.
- Sever nhận yêu cầu từ mobile client, sau đĩ thực truy vấn tương ứng lên
server của Google, lấy về dữ liệu dạng KML, phân tích file KML và trả về cho
client.
Để đơn gian, tơi đã lựa chọn ý tưởng thứ 2, tạo một Script PHP ở server nhận
request từ mobile client, sau đĩ gửi request tương ứng lên map server của Google lấy
về kết quả ở dạng file kml, phân tích và gửi về kết quả cần thiết ở dạng XML cho
mobile client.
Ứng dụng trên Mobile Wireless
network,
3G,
GPRS
Server
Hiển
thị
HTTP
XML Parser
Webservice
CSDL -
PostgreSQL Result
SQLRequest
40
Google tạo ra định dạng KLM để hiển thị các dữ liệu địa lý trên các ứng dụng
client của mình, ví dụ như Google Earth, Google Maps. KML sử dụng cậu trúc tuân
theo chuẩn XML.
Hình 18 – File KML
Cấu trúc của file KML được chia ra làm các phần như sau:
• Phần mào đầu XML
• Mơ tả khơng gian tên KML
• Mơ tả placemark
• Tên của placemark
• Khung nhìn của placemark
• Khung nhìn mặc định của placemark (trong trường hợp này nĩ
được chuyển đổi bởi người dùng)
• Định nghĩa Style cho placemark, chi tiết nơi mà hình ảnh được
định vị và vị trí của nĩ.
• Chuyển đổi nếu các place mark được lấy ra
• Các loại tọa độ mà placemark cĩ thể sử dụng
• Vị trí trên placemark trên bề mặt quả đất
Để giảm bớt dử liệu truyền tải về client cũng như giảm độ phức tạp khi phân tích
file KML được trả về. Việc phân tích file KML sẻ được thực hiện trên một server hổ
trợ PHP – một ngơn ngử cung cấp xứ lý file XML dễ dàng, sau đĩ dữ liệu chọn lọc sẽ
được gửi về cho mobile client dưới dạng file XML đơn giản hơn, loại bỏ các dữ liệu
khơng cần thiết, cĩ dạng:
ði từ ðai học Quốc gia đến đường Trường
Chinh
ði về hướng nam đường Xuân Thủy
đi 3km
Rẽ phải ở đường Láng
đi 3km
41
Tiếp tục lên đường Trường Chinh
đi 1km
0
4.4. Lựa chọn ngơn ngữ
Hiện nay cĩ rất nhiều ngơn ngữ lập trình được sử dụng để lập trình ứng dụng cho
các thiết bị di động, cho phép khai thác hầu hết các tính năng về đồ họa cũng như kết
nối của thiết bị. Tuy nhiên để phát triển ứng dụng cĩ thể sử dụng được trên nhiều thiết
bị, thì J2ME là một lựa chọn tối ưu.
Kiến trúc của J2ME
Hình 19 – Kiến trúc của J2ME
Giới thiệu các thành phần trong nền tảng J2ME:
KVM: Cơ chế thực thi của một ứng dụng Java là chạy trên một máy ảo java (java
virtual machine). Máy ảo này cĩ chức năng chuyển các mã dạng bytecode sang mã
máy. Với các thiết bị dạng CLDC, Sun cài đặt một phiên bản thu nhỏ hơn dành cho
các thiết bị này đĩ là KML. Chính nhờ tầng này, mà các ứng dụng cĩ thể chạy trên các
thiết bị khác nhau.
Định nghĩa về Configuration (Cấu hình): là đặc tả định nghĩa một mơi trường
phần mềm cho một dịng các thiết bị được phân loại bởi tập hợp các đặc tính, như:
Kiểu và số lượng bộ nhớ, kiểu và tốc độ bộ vi xử lý, kiểu mạng kết nối.
Hiện nay Sun đã đưa ra 2 dạng Configuration:
- CLDC-Connected Limited Device Configuration (Cấu hình thiết bị
kết nối giới hạn): được thiết kế để nhắm vào thị trường các thiết bị cấp thấp
(low-end).
- CDC- Connected Device Configuration (Cấu hình thiết bị kết nối):
CDC được đưa ra nhắm đến các thiết bị cĩ tính năng mạnh hơn dịng thiết bị
thuộc CLDC nhưng vẫn yếu hơn các hệ thống máy để bàn sử dụng J2SE.
Cả 2 dạng Cấu hình kể trên đều chứa máy ảo Java (Java Virtual Machine) và
tập hợp các lớp (class) Java cơ bản để cung cấp một mơi trường cho các ứng dụng
J2ME. Tuy nhiên, Với các thiết bị cấp thấp, do hạn chế về tài nguyên như bộ nhớ và
bộ xử lý nên khơng thể yêu cầu máy ảo hổ trợ tất cả các tính năng như với máy ảo
42
của J2SE.
Định nghĩa về Profile: Profile mở rộng Configuration bằng cách thêm vào các
class để bổ trợ các tính năng cho từng thiết bị chuyên biệt.
Mộ số profile phổ biến hiện nay:
- Mobile Information Device Profile (MIDP): profile này sẽ bổ sung
các tính năng như hỗ trợ kết nối, các thành phần hỗ trợ giao diện người dùng
… vào CLDC. Profile này được thiết kế chủ yếu để nhắm vào điện thọai di
động với đặc tính là màn hình hiển thị hạn chế, dung lượng chứa cĩ hạn. Do
đĩ MIDP sẽ cung cấp một giao diện người dùng đơn giản và các tính năng
mạng đơn giản dựa trên HTTP. Cĩ thể nĩi MIDP là profile nổi tiếng nhất
bởi vì nĩ là kiến thức cơ bản cho lập trình Java trên các máy di động
(Wireless Java).
- PDA Profile: tương tự MIDP, nhưng với thị trường là các máy PDA
với màn hình và bộ nhớ lớn hơn.
- Foundation Profile: cho phép mở rộng các tính năng của CDC với
phần lớn các thư viện của bộ Core Java2 1.3.
Ngồi ra cịn cĩ Personal Basis Profile, Personal Profile, RMI Profile, Game
Profile.
Hiện nay hầu hết các dịng điện thoại hổ trợ profile MIDP là phổ biến. Do đĩ tơi
lựa chọn xây dựng ứng dụng cho các thiết bị hổ trợ profile MIDP.
4.5. Tìm hiểu cơ chế hoạt động của hệ thống GPS
GPS, hệ thống định vị tồn cầu, được cấu thành như một chịm sao (cĩ nghĩa cấu
tạo của một nhĩm hay một hệ thống) của quỹ đạo vệ tinh mà, kết hợp với thiết bị ở
mặt đất, cho phép người sử dụng xác định vị trí chính xác của họ bất kỳ lúc nào trên bề
mặt trái đất.
Nguyên lý xác định toạ độ của hệ thống GPS và Glonass dựa trên cơng thức cơ
bản:
Quãng_đường = Vận_tốc × Thời_gian.
Vệ tinh phát ra các tín hiệu bao gồm vị trí của chúng, thời điểm phát tín hiệu.
Máy thu tính tốn được khoảng cách từ các vệ tinh, giao điểm của các mặt cầu cĩ tâm
là các vệ tinh, bán kính (là thời gian tín hiệu đi từ vệ tinh đến máy thu nhân vận tốc
sĩng điện từ) là toạ độ điểm cần định vị.
Hệ thống NAVSTAR gồm 24 vệ tinh với 6 quỹ đạo bay. Các vệ tinh này hoạt
động ở quỹ đạo cĩ độ cao 20.200km ở gĩc nghiêng 55 độ và với thời gian 12/quỹ đạo.
43
Hình 20 – Hệ thống vệ tinh GPS
Hệ thống GLONASS gồm 24 vệ tinh, 8 vệ tinh cho một quỹ đạo bay gồm 3 quỹ
đạo. Các vệ tinh hoạt động với quỹ đạo cĩ độ cao 19,100 km orbits ở gĩc nghiêng 64.8
độ và 11 giờ 15 phút/ quỹ đạo.
4.5.1. Đo khoảng cách từ máy thu đến các vệ tinh
Máy thu cĩ thể tính tốn được khoảng cách dựa vào thời gian cần thiết để tín
hiệu từ vệ tinh truyền đến được máy thu. Vào một thời điểm nào đĩ, một vệ tinh bắt
đầu truyền một chuỗi tín hiệu dài, được gọi là mã ngẫu nhiên giả. Máy thu cũng bắt
đầu tạo ra chuỗi mã giống hệt vào cùng thời điểm. Khi tín hiệu từ vệ tinh truỳên đến
máy thu, chuỗi tín hiệu đĩ sẽ bị trễ một chút so với chuỗi do máy thu tạo ra. Chiều dài
khoảng thời gian trễ này chính là thời gian truyền của tín hiệu từ vệ tinh. Máy thu nhân
thời gian này với tốc đọ ámh sáng để xác định quãng đường truyền tín hiệu. Giả sử
rằng tín hiệu truyền trên đường thẳng, đây chính là khoảng cách từ vệ tinh đến máy
thu. Để thực hiện phép đo này, chúng ta phải chắc chắn là đồng hồ trên vệ tinh và
trong máy thu phải đồng bộ với nhau. Một sai số 1 mili giây sẽ dẫn đến sai số là 300
ngàn mét, một sai số rất lớn. Do đĩ, độ chính các tối thiểu cho các máy thu phải là cỡ
nano giây (10-9s). Để cĩ độ chính xác như vậy, phải trang bị đồng hồ nguyên tử cho
khơng chỉ các vệ tinh mà cịn cho cả máy thu. Nhưng giá đồng hồ nguyên tử rất cao do
đĩ phương pháp này thực sự khơng khả thi.
Cĩ một phương pháp được đưa ra, đĩ là trên mỗi vệ tinh trang bị một đồng hồ
nguyên tử, con trên thiết bị GPS vẫn trang bị đồng hồ bình thường. Trên lý thuyết thì 4
mặt cầu phải giao nhau tại 1 điểm. Nhưng do sai số đồng hồ bình thường, 4 mặt cầu đã
khơng cho 1 giao điểm duy nhất. Vì thời gian sai số gây ra bởi đồng hồ trên máy thu là
như nhau ∆t với tất cả các vệ tinh, máy thu cĩ thể dễ dàng loại trừ sai số này bằng cách
tính tốn ra lượng hiệu chỉnh cần thiết để 4 mặt cầu giao nhau tại một điểm. Dựa vào
đĩ, máy thu tự động điều chỉnh đồng hồ cho đồng bộ với đồng hồ nguyên tử trên vệ
44
tinh. Nhờ đĩ mà đồng hồ trên máy thu cĩ độ chính xác gần như tương đương với đồng
hồ nguyên tử.
4.5.2. Xác định vị trí hiện tại của các vệ tinh
Để xác định vị trị hiện tại của các vệ tinh trong bộ nhớ của mỗi máy thu đều cĩ
chứa một bảng tra vị trí tính tốn của tất cả các vệ tinh vào bất kỳ thời điểm nào gọi là
Almanac. Tuy nhiên lực hút của mặt trăng, mặt trời cĩ ảnh hưởng nhất định làm thay
đổi quĩ đạo của các vệ tinh, do đĩ các vệ tinh liên tục được theo dõi để cĩ thể xách
định vị trí chính xác, các thơng số hiệu chỉnh sẽ được truyên đến các máy thu thơng
qua tín hiệu từ vệ tinh.
Sau khi máy thu đã thu nhận và xử lý thơng tin, máy sẽ cho biết vĩ độ, kinh độ và
cao độ của vị trí hiện thời. Để làm cho việc định vị thân thiện hơn, hầu hết các máy thu
đều thể hiện các thơng tin này dưới dạng các điểm trên bản đồ được chứa sẵn trong
máy. Trong J2ME thơng tin này cĩ thể lấy được bởi lớp LocationProvider.
4.6. Thử nghiệm ứng dụng
4.6.1. Các lớp chính của chương trình
- Gmidlet – Là lớp chương trình chính, cung cấp đối tượng hiện thị. Tạo
đối tượng GoogleSimpleCanvas để hiển thị bản đồ.
- GoogleSimpleCanvas – Lớp quan trọng nhất: thừa kết từ lớp Canvas,
thực hiện truy xuất đến server GoogleMaps lấy về bản đồ ở khu vực mong
muốn dưới dạng ảnh .PNG. Thực hiện nắm bắt các tương tác người dùng và
cung cấp kết quả: Yêu cầu zoom, move bản đồ, tìm đường.
- Point – Là lớp lưu trữ tọa độ của các ngã rẻ khi thực hiện tìm đường
- getDirections – Lớp thực hiện kết nối đến server, gửi yêu cầu tìm đường,
và nhận về file Xml chứa kết quả. Phân tích file Xml lấy ra các điểm đi qua của
đường, lưu vào vector Path, và hiển thị đường đi lên bản đồ.
- Retriever: Thực hiện lấy thơng tin GPS của người dùng.
4.6.2. Screenshot của chương trình
Khi khởi động chương trình, nếu máy tích hợp GPS và người dùng cho phép sử
dụng GPS thì bản đồ sẻ được đặt trung tâm tại vị trí người dùng đang đứng. Nếu
khơng vị trí trung tâm sẻ là trung tâm của Hà Nội
45
a - Cĩ GPS
b - Khơng cĩ GPS
Hình 21 – Giao diện chương trình ban đầu
Điểm màu xanh hiển thị vị trí hiện tại của người dùng (nếu thiết bị cĩ hổ trợ
GPS).
46
Hình 22 – Hướng dẫn sử dụng
- 1. Bỏ đường đi: chương
trình vẽ đường đi tìm thấy cho
người dùng lên bản đồ, khi người
dùng khơng muốn hiển thị đường
đi này nữa, chức năng bỏ đường đi
cho phép xĩa bỏ đường đi này.
- 2. Hướng dẫn: khi đã
tìm thấy đường đi cho người dùng,
các thơng tin hướng dẫn đường đi
sẽ được hiển thị ở Form hướng dẫn.
- 3. Tìm đường: Hiển thị
Form tìm đường để người dùng cĩ
thể nhập thơng tin tìm đường
- 4.Vị trí: cho phép xác
định lại vị trí người dùng thơng qua
GPS của máy.
- Người dùng cĩ thể
zoom, di chuyển bản đồ bằng phím
1, 3 và các phím mũi tên
Khi người dùng chọn chức năng tìm đường, khung hiển thị cho phép người
dùng nhập thơn tin tìm đường. Điểm bắt đầu cĩ thể là vị trí hiện tại của người dùng,
hoặc là một điểm bất kì do người dùng lựa chọn.
Hình 23 – Form tìm đường
- Người dùng cĩ thể sử
dụng vị trí hiện tại, hoặc nhập vào
thơng tin vị trí ban đâu.
- Chương trình cho phép
người dùng lựa chọn 1 trong hai
loại phương tiện đi bộ hoặc đi
bằng ơ tơ.
47
Sau khi tìm đường thành cơng, giao diện trả lại đường đi, được vẽ trên bản đồ:
Hình 24 – Form kết quả
- Kết quả tìm đường đi từ
ĐH QG Hà Nội đến ĐH BK Hà
Nội, với phương tiện : đi bộ.
- Đường đi được vẽ lên
bản đồ.
- Thơng tin về khoảng
cách đường đi, thời gian đi được
hiễn thị ở một ticker ở phía dưới
màn hình.
Người dùng xem chi tiết hướng dẫn đường đi tại Form hướng dẫn của chương
trình.
Hình 25 – Form hướng dẫn lộ trình
- Hiễn thị hướng dẫn đi
đường cho người dùng
- Độ dài đường đi, chổ
rẽ
48
Khi người dùng lựa chọn tìm đường từ vị trí hiện tại, chương trình sẻ sử dụng thơng
tin của GPS để thực hiện tìm đường. Hiện tại chương trình chỉ cung cấp hướng dẫn ở
ngơn ngữ tiếng anh với chức năng này.
Hình 26 – Tìm đường dựa trên GPS
Hướng dẫn đi đường cho khách hàng ở hai thời điểm, khi vị trí của người dùng
thay đổi .
Hình 27 – chỉ dẫn lộ trình với GPS
- Mỗi 2 phút, chương trình sẽ
cập nhật lại đường đi cho người dùng,
và thơng báo về đướng sắp phải đi,
cũng như độ dài quảng đường cịn lại.
Thơng tin được hiện thị ở ticker, và
alert thơng báo.
49
4.7. Nhận xét
Như kết quả ở trên, ta thấy ứng dụng đã cung cấp khả đầy đủ thơng tin về bản đổ
cũng như là chức năng tìm đường, hướng dẫn lộ trình cho người dùng. Các thơng tin
về hướng dẫn lội trình được cung cấp khá chi tiêt, cho phép người dùng cĩ thể xác
định đường đi dễ dàng.
Với trường hợp tìm đường đi cĩ xác định điểm đầu và điểm cuối, thơng tin được
hiển thị bởi đường đi được vẽ trên bản đồ, cho phép người dùng dễ hình dung về
đường đi. Các thơng tin về đi bao nhiêu m hay km, rẽ ở đâu, về hướng nào đều được
cung cấp đầy đủ bằng tiếng việt.
Với trường hợp tìm đường đi sử dụng điểm đầu là vị trí hiện tại thì khoảng 2
phút, chương trình lại hiển thị hướng dẫn lộ trình cho người dùng. Tuy nhiên ngơn ngữ
được sử dụng chỉ mới bằng tiếng anh.
Vì sử dụng dữ liệu cung cấp từ GoogleMaps, do đĩ kết quả trả về khơng thực sự
được tốt.
50
CHƯƠNG 5. KẾT LUẬN
5.1. Kết quả đạt được
Tìm hiểu về hệ thống thơng tin địa lý, đã cho tơi một cái nhìn tổng quan khá chi
tiết về một hệ thống GIS. Các phương pháp lưu trữ dữ liệu để phù hợp với các đối
tượng địa lý, phục vụ hiệu quả cho việc quản lý CSDL địa lý. Những kiến thức này sẽ
cho phép tơi hình thành nên một phương pháp nào đĩ khi tiếp cận với việc xây dựng
CSDL cho một kiểu dữ liệu mới.
Ứng dụng bản đồ trên thiết bị di động tích hợp đã phần nào cung cấp được các
chức năng cho một ứng dụng hổ trợ GIS cơ bản: hiển thị thơng tin GIS, hướng dẫn
đường đi cho người dùng. Ứng dụng đã sử dụng được thơng tin GIS cung cấp bởi một
nhà cung cấp (trong trường hợp này là GoogleMaps) để hổ trợ người dụng trong việc
tìm đường.
5.2. Hạn chế
Ứng dụng chỉ sử dụng được cho các thiết bị cĩ kết nối đến Internet. Vì sử dụng
dữ liệu từ server qua kết nối Internet nên tốc độ phản hồi của ứng dụng cịn chậm,
chưa thực sự hiệu quả.
Thơng tin được cung cấp bởi Google, do đĩ ngơn ngữ tiếng Việt sử dụng chưa
được hồn hảo. Ứng dụng hổ trợ tìm đường dựa vào vị trí người dùng vẫn đang sử
dụng giao diện tiếng Anh, do đĩ sẽ gây khĩ khăn cho những người dùng khơng cĩ
kiến thức về tiếng Anh.
Kết quả tìm đường chưa là tối ưu, do kết quả cung cấp của Google chưa được
hồn hảo. Người dùng phải biết rõ điểm đầu và điểm cuối, kết quả mới cĩ hiệu quả.
5.3. Hướng phát triển
Hướng phát triển đầu tiên của khĩa luận là hồn thiện ứng dụng cung cấp các
chức năng tìm đường bằng cách nghiên cứu xây dựng một hệ thống thơng tin địa lý
riêng dựa trên hệ quản trị CSDL PosstgreSQL.
Ngồi ra việc tìm hiểu, đưa ra phương pháp caching để tăng tốc độ đáp ứng của
chương trình khi di chuyển cũng là một hướng phát triển đáng quan tâm của khĩa
luận.
51
TÀI LIỆU THAM KHẢO
Tiếng Việt:
[1] Lê Cơng Trung – Nghiên cứu mơ hình dịch vụ hướng vị trí trên hệ thống
thơng tin địa lý.
[2] Nguyễn Việt Hà – Tích hợp cơng nghệ GIS và GPS phục vụ cơng tác nghiệp
vụ của CS 113
[3] Nguyễn Sơn Hải – Xây dựng hệ thống khai thác trực tuyến cơ sở dữ liệu địa
lý.
[4] Trần Anh Tú - Ứng dụng Mobile GIS trong xây dựng hệ thống quản lý điều
hành mạng lưới BIDV
Tiếng Anh:
[5] Antonin Guttman – University of California Berkely: R-trees – a dynamic
index structure for spatial searching
[6] BECKER, B., KRIEGEL, H., SCHNEIDER, R. and SEEGER, B., 1990, The
R*-tree: an efficient and robust access method.
[7] DEBERG, M., VAN KREVELD, M., OVERMARS, M. and
SCHWARZKOPF, O., 1997, Computa-tional Geometry, pp. 305 – 315 (Berlin:
Springer).
[8] Dimitris Papadias, Department of Computer Science HongKong University
of Science and Technology – Query Processing in Spatial Network databases.
[9] Hans-Peter Kriegel, Thomas Brinkhoff, Ralf Schneider – institute for
Computer Science, University of Munich – Efficient Spatial Query Processing in
Geographic Database Systems.
[10] Hjaltason, G. and Samet, H., 1999 – Distance browsing in spatial databases.
ACM Transactions on Databse Systems, 24, pp.265-318.
[11] Jun Zhang, Dmitris papadias, Kyriakos mouratidis and zhu manli – School
of Computer Engineering, Nayang Technological University, Nanyang Avenue,
Singapore - Query processing in spatial databases containing obstacles
[12] PostGIS manual
[13] Sharir, M.and Schorr, A., 1984, On shortest paths in polyhedral spaces, In
16th Annual ACM Symposium on Theory of Computing.
Các file đính kèm theo tài liệu này:
- Luận văn - Phát triển hệ thống hỗ trợ tìm đường trên các thiết bị di động có GPS.pdf