07HC446- 07HC451 Nghien cuu Location Service va xay dung ung dung minh hoa.doc
-
Upload
bang-rikimaru -
Category
Documents
-
view
55 -
download
0
Transcript of 07HC446- 07HC451 Nghien cuu Location Service va xay dung ung dung minh hoa.doc
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN
TRẦN VĂN TÀI – 07HC446
NGUYỄN XUÂN TÂN – 07HC451
NGHIÊN CỨU LOCATION SERVICE VÀ XÂY
DỰNG ỨNG DỤNG MINH HỌA
KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN CNTT
GIÁO VIÊN HƯỚNG DẪN
Th.S NGÔ HUY BIÊN
KHÓA 2007 – 2010
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
Lời cảm ơn
Chúng em chân thành cám ơn Khoa Công Nghệ Thông Tin, trường Đại Học Khoa
Học Tự Nhiên, Đại học Quốc gia Tp. Hồ Chí Minh đã tạo điều kiện thuận lợi cho
chúng em trong quá trình học tập và thực hiện đề tài tốt nghiệp.
Chúng em xin nói lên lòng biết ơn sâu sắc đối với Th.S Ngô Huy Biên. Chúng em
xin chân thành cám ơn Thầy đã luôn quan tâm, tận tình hướng dẫn chúng em trong quá
trình học tập, nghiên cứu và thực hiện đề tài.
Chúng em xin chân thành cám ơn quý Thầy Cô trong Khoa Công Nghệ Thông Tin
đã tận tình giảng dạy, trang bị cho em những kiến thức quý báu trong suốt quá trình
học tập và thực hiện đề tài. Chúng em cũng xin gửi lòng biết ơn đến thầy cô và bạn bè
trong lớp đã giúp đỡ, động viên tinh thần chúng em rất nhiều trong suốt quá trình thực
hiện luận văn này.
Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho phép nhưng
chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong nhận được sự góp ý và tận
tình chỉ bảo của quý Thầy Cô và các bạn.
Một lần nữa, xin chân thành cám ơn và mong luôn nhận được những tình cảm chân
thành của tất cả mọi người.
Tp. Hồ Chí Minh, tháng 2 năm 2010
Trần Văn Tài - Nguyễn Xuân Tân
Mục lục
Chương 1 GIỚI THIỆU DỊCH VỤ HƯỚNG VỊ TRÍ...................................14
1.1 Giới thiệu về dịch vụ hướng vị trí.................................................................14
1.1.1 Định nghĩa..............................................................................................14
1.1.2 Thành phần cơ bản của LBS...................................................................15
1.1.3 LBS hoạt động như thế nào?..................................................................17
1.1.4 Ứng dụng của dịch vụ hướng vị trí trong các lĩnh vực khác nhau.........18
1.1.5 Ưu điểm và nhược điểm của dịch vụ hướng vị trí..................................21
1.2 Lịch sử của LBS.............................................................................................22
Chương 2 CÁC CÔNG NGHỆ ĐỊNH VỊ...................................................22
2.1 Tìm hiểu các công nghệ định vị hiện có........................................................22
2.1.1 GPS (Global Positioning System)..........................................................22
2.1.2 Hệ thống định vị Galileo........................................................................23
2.1.3 Hệ thống GLONASS..............................................................................24
2.1.4 Hệ thống Compass..................................................................................24
2.1.5 Trạm thu phát sóng: BTS - Base Transceiver Station............................25
2.2 Tìm hiểu các thiết bị hổ trợ người dùng........................................................26
2.2.1 PDA và điện thoại di động.....................................................................26
2.2.2 Dashtop...................................................................................................27
2.2.3 Các thiết bị định vị khác.........................................................................28
2.3 Tìm hiểu các cách thức định vị......................................................................29
2.3.1 Tìm hiểu về Cell ID................................................................................30
2.3.2 Tìm hiểu về GPS....................................................................................31
2.4 Thuận lợi và khó khăn khi sử dụng công nghệ định vị..................................35
2.4.1 Định vị bằng vệ tinh...............................................................................35
2.4.2 Định vị bằng Cell ID..............................................................................36
Chương 3 CÁC NỀN TẢNG HỖ TRỢ LẬP TRÌNH LBS.......................36
3.1 Google Maps API..........................................................................................36
3.1.1 Giới thiệu về Google Maps API.............................................................36
3.1.2 Ưu điểm và khuyết điểm của Google Maps API....................................38
3.1.3 Giải pháp và ứng dụng của Google Maps API.......................................38
3.1.4 Cách thức sử dụng Google Maps API....................................................39
3.2 Navizon API..................................................................................................41
3.2.1 Giới thiệu về Navizon API.....................................................................41
3.2.2 Ưu điểm và khuyết điểm của Navizon API............................................42
3.2.3 Giải pháp và ứng dụng của Navizon API...............................................43
3.2.4 Cách thức sử dụng Navizon API............................................................45
3.3 Yahoo API.....................................................................................................45
3.3.1 Giới thiệu về Yahoo API........................................................................45
3.3.2 Ưu điểm và khuyết điểm của Yahoo API...............................................53
3.3.3 Cách thức sử dụng Yahoo API...............................................................54
3.4 Bing Maps API..............................................................................................54
3.4.1 Giới thiệu vế Bing Maps API.................................................................54
3.4.2 Ưu điểm và khuyết điểm của Bing Maps API........................................55
3.4.3 Giải Pháp và ứng dụng của Bing Maps API...........................................56
3.4.4 Cách thức sử dụng Bing Maps API........................................................56
3.5 Vietbando API...............................................................................................58
3.5.1 Giới thiệu về Vietbando API..................................................................58
3.5.2 Ưu điểm và khuyết điểm của Vietbando API.........................................59
3.5.3 Giải Pháp và ứng dụng của Vietbando API............................................60
3.5.4 Cách thức sử dụng Vietbando API.........................................................60
3.6 Các nền tảng khác.........................................................................................61
3.7 So sánh các nền tảng hổ trợ lập trình..........................................................62
Chương 4 XÂY DỰNG HỆ THỐNG DỮ LIỆU CHO LBS......................67
4.1 Tìm hiểu khái niệm và các công nghệ xử lý dữ liệu cho GIS........................67
4.1.1 Khái niệm GIS.......................................................................................67
4.1.2 Các thành phần của GIS.........................................................................68
4.1.3 Dữ liệu của GIS......................................................................................69
4.1.4 Lưu trữ dữ liệu GIS................................................................................74
Chương 5 XÁC ĐỊNH YÊU CẦU...............................................................78
5.1 Đặc tả bài toán..............................................................................................78
5.2 Sơ đồ Use-Case.............................................................................................80
5.2.1 Danh sách Actor.....................................................................................81
5.2.2 Danh sách Use-Case...............................................................................81
5.2.3 Đặt tả Use-Case......................................................................................82
5.2.4 Mô tả dữ liệu cho hệ thống LBS............................................................96
Chương 6 KIẾN TRÚC PHẦN MỀM CHO LBS....................................104
6.1 Kiến trúc hướng dịch vụ (SOA) là gì?.........................................................106
6.1.1 Giới thiệu..............................................................................................107
6.1.2 Áp dụng kiến trúc hướng dịch vụ vào ứng dụng LBS..........................112
6.1.3 Tài liệu tham khảo................................................................................114
6.2 Tìm hiểu về Webservices.............................................................................114
6.2.1 Định nghĩa Webservices.......................................................................114
6.2.2 Ưu và nhược điểm của Web Services..................................................115
Chương 7 CÔNG NGHỆ XÂY DỰNG HỆ THỐNG LBS......................116
7.1 Tổng quan về .Net Framework....................................................................116
7.1.1 Giới thiệu về .Net Framework..............................................................116
7.1.2 Ngôn ngữ lập trình C#..........................................................................120
7.2 Hệ quản trị cơ sở dữ liệu SQL Server 2005 và ứng dụng LBS...................128
7.2.1 Giới thiệu về SQL Server 2005............................................................128
7.2.2 GIS và SQL Server 2005......................................................................128
Chương 8 PHÂN TÍCH..............................................................................129
Chương 9 THIẾT KẾ.................................................................................129
9.1 Sơ đồ lớp.....................................................................................................129
9.1.1 Sơ đồ lớp phía server............................................................................129
9.1.2 Sơ đồ lớp ở phía client..........................................................................131
9.2 Sơ đồ tuần tự...............................................................................................132
9.2.1 Chức năng lấy hình ảnh bản đồ từ Google Map API...........................132
9.2.2 Chức năng Tìm kiếm địa điểm.............................................................133
9.2.3 Chức tìm kiếm con đường....................................................................135
9.2.4 Chức năng tìm kiếm đường đi ngắn nhất.............................................136
Chương 10 CÀI ĐẶT....................................................................................136
10.1 Cài đặt phần server.....................................................................................136
Chương 11 KIỂM CHỨNG.........................................................................136
11.1 Kiểm chứng phần server.............................................................................136
1. Test case 1: Kiểm chứng chức năng lấy hình ảnh của bản đồ từ hệ thống
Google Map.......................................................................................................137
2. Test case 2: Kiểm tra tính chịu lỗi của chức năng lấy hình ảnh trong bản
đồ của Google Map...........................................................................................138
3. Test case 3: Kiểm tra chức năng lấy các địa điểm theo tên địa điểm...139
4. Test case 4: Kiểm tra tính chịu lỗi của phương thức tìm kiếm địa điểm
dựa trên tên địa điểm.........................................................................................140
5. Test case 5: Kiểm tra tính năng tìm kiếm theo tên đường....................142
6. Test case 6: Kiểm tra tính chịu lỗi của chức năng tìm kiếm đường.....143
7. Test case 7: Kiểm chứng chức năng tìm đường ngắn nhất...................144
11.2 Kiểm chứng phần Client..............................................................................145
1. Test case 1: Kết nối với webserivce ở tầng server để lấy dữ liệu hình ảnh
và hiển thị hình ảnh bản đồ...............................................................................145
2. Testcase 2: Thực hiện di chuyển bản đồ............................................145
3. Test case 3: Phóng to/ thu nhỏ bản đồ..................................................146
4. Test case 4: Phóng to/ thu nhỏ..............................................................146
5. Test case 5: Kiểm chứng chức năng tìm con đường............................147
6. Test case 6: Kiểm chứng khả năng chịu lỗi của chức năng tìm con
đường 147
7. Test case 7: Kiểm chứng chức năng tìm đường đi ngắn nhất giữa 2 điểm
148
11.3 Báo cáo kết quả kiểm chứng.......................................................................149
1. Phần server :.........................................................................................149
2. Phần client:...........................................................................................149
Chương 12 TRIỂN KHAI............................................................................149
Chương 13 BẢO TRÌ....................................................................................149
Chương 14 HƯỚNG PHÁT TRIỂN..............................................................150
Danh sách hình
Hình 1-1 Ba công nghệ định vị trong LBS.............................................................15
Hình 1-2 Các thành phần của LBS........................................................................16
Hình 1-3 Kiến trúc chung của dịch vụ hướng vị trí...............................................17
Hình 1-4 Real time Traffic.....................................................................................19
Hình 1-5 Hình ảnh minh họa ứng dụng tìm kiếm địa điểm gần nhất trên di động20
Hình 1-6 Hình ảnh minh họa về quảng cáo SMS..................................................21
Hình 2-1 Trạm thu phát.........................................................................................26
Hình 2-2 Nokia N95 và PDA có GPS...................................................................27
Hình 2-3 Xe hơi có thiết bị dashtop.......................................................................28
Hình 2-4 Thiết bị GPS...........................................................................................29
Hình 2-5 Các loại định vị di động.........................................................................30
Hình 2-6 Định vị theo phương pháp Cell identification........................................30
Hình 2-7 Hệ thống vệ tinh GPS.............................................................................33
Hình 2-8 Kiến trúc WAAS......................................................................................34
Hình 2-9 Mô hình A-GPS......................................................................................35
Hình 3-1 Giao diện của google map trên Web......................................................37
Hình 3-2 Các thành phần của Google Maps.........................................................39
Hình 3-3 Mô hình hoạt động của hệ thống Navizon..............................................41
Hình 3-4 Navizon API trên web.............................................................................43
Hình 3-5 Navizon API trên các thiết bị di động....................................................44
Hình 3-6 Hình ảnh vệ tinh kết hợp hình ảnh vẽ.....................................................46
Hình 3-7 Hình ảnh vẽ............................................................................................46
Hình 3-8 Hỉnh ảnh vệ tinh.....................................................................................46
Hình 3-9 Dịch vụ lưu trữ địa điểm trên Yahoo Map.............................................47
Hình 3-10 Real-time traffic trên Yahoo Map...........................................................48
Hình 3-11 Point Interest Finder..............................................................................49
Hình 3-12 Tìm đường dưới dạng thể hiện hình ảnh................................................50
Hình 3-13 Tìm đường thể hiện dưới dạng text........................................................50
Hình 3-14 Màn hình chính của Bing Map...............................................................55
Hình 3-15 Hệ thống Bing Maps API.......................................................................57
Hình 3-16 Hình ảnh bản đồ trên VietBanDo...........................................................59
Hình 3-17 Hình ảnh hiển thị của Google Map........................................................63
Hình 3-18 Hình ảnh hiển thị của Yahoo Map.........................................................64
Hình 3-19 Hình ảnh hiển thị của VietBanDo..........................................................65
Hình 3-20 Hình ảnh hiễn thị của Bing Map............................................................65
Hình 4-1 Các thành phần của GIS........................................................................68
Hình 4-2 Dữ liệu điểm...........................................................................................70
Hình 4-3 Dữ liệu đường.........................................................................................71
Hình 4-4 Dữ liệu vùng...........................................................................................71
Hình 4-5 Dữ liệu raster.........................................................................................72
Hình 5-1 Mô tả tổng quan luồng dữ liệu của các dịch vụ LBS...........................104
Hình 5-2 Sơ đồ cộng tác trong mô hình SOA......................................................107
Hình 5-3 Mô hình service registry.......................................................................111
Hình 5-4 Mô hình service broker........................................................................111
Hình 5-5 Mô hình service buss............................................................................112
Hình 5-6 Mô hình Web Services..........................................................................115
Danh sách các thuật ngữ và khái niệm
Mở đầu
PHẦN A - LÝ THUYẾT VỀ LOCATION BASED SERVICE
Chương 1 GIỚI THIỆU DỊCH VỤ HƯỚNG VỊ TRÍ
Nội dung của chương 1 tập trung trình bày về các khái niệm, các thành phần
cần thiết để có hệ thống dịch vụ hướng vị trí, đồng thời phân tích các ưu điểm, nhược
điểm của dịch vụ hướng vị trí. Qua đây chúng ta sẽ có một cái nhìn tổng quan dịch vụ
hướng vị trí là gì? Dịch vụ hướng vị trí hoạt động như thế nào ? Dịch vụ hướng vị trí
có giá trị như thế nào trong cuộc sống?
1.1 Giới thiệu về dịch vụ hướng vị trí
1.1.1 Định nghĩa
Dịch vụ hướng vị trí (Location based Services viết tắt là LBSs) là ứng dụng cung cấp
thông tin có ích liên quan đến vị trí hiện tại của thiết bị di động cho người sử dụng dịch
vụ cần như là “Nhà hàng nào gần nhất? Trạm ATM gần nhất ở đâu? Từ vị trí này đi
đến vị trí khác thì phải đi đường nào ?...” với sự giúp đỡ của các yếu tố cơ bản như là:
thiết bị di động, mạng viễn thông di động, nhà cung cấp dịch vụ (Dịch vụ định vị toàn
cầu GPS, thông tin dữ liệu vị trí)
Lấy một ví dụ cụ thể dễ hình dung như sau: Nếu bạn đang đi trên đường gặp một vụ tai
nạn, cần đưa đến bệnh viện khẩn cấp. Ngay lúc đó bạn sử dụng điện thoại di động của
bạn, nhắn tin tới tổng đài yêu cầu cho biết bệnh viện gần nhất. Trong chốc lát, Tổng
đài trả lời danh sách các bệnh viện gần vị trí hiện tại của bạn cùng với các chỉ dẫn
như là: hướng dẫn đường đi tới đó, thông tin về bệnh viện đó… Như vậy là bạn đã sử
dụng dịch vụ hướng vị trí.
Yếu tố chính của LBSs là vị trí của người dùng. Internet là yếu tố quan trọng trong
việc liên lạc giữa người sử dụng dịch vụ và nhà cung cấp dịch vụ.
LBS là sự kết hợp bởi ba công nghệ và hai loại thành phần: Thành phần thông tin và
thành phần công nghệ truyền thông.
Hình 1-1 Ba công nghệ định vị trong LBS
Ngày nay LBS được sử dụng cho các lĩnh vực: hướng dẫn đường trên biển, dịch vụ
cấp cứu, chỉ dẫn đường, theo dõi và một số dịch vụ hỗ trợ về thông tin của vị trí.
Cùng với sự phát triển của công nghệ viễn thông, ứng dụng LBS ngày càng phát triển
rộng hơn, ứng dụng lan xa hơn, áp dụng cho nhiều đối tượng hơn. Ứng dụng LBS cung
cấp không chỉ cho cá nhân mà còn cho các doanh nghiệp đặc biệt là các doanh nghiệp
về vận tải trong việc theo dõi và quản lý nhận sự, vật tư…Một số công ty, tổ chức hoạt
động kinh doanh dịch vụ LBS: OnStar, Navigazone…
1.1.2 Thành phần cơ bản của LBS
Hình 1-2 Các thành phần của LBS
LBS được chia ra gồm 5 thành phần (4+1) là những thành phần cơ bản của LBS.
Hình 1.1-2 thể hiện những thành phần liên quan:
Mobile Devices: Là công cụ của người dùng để truy vấn thông tin cần
thiết từ LBS. Kết quả có thể được trả về thông qua: giọng nói, hình ảnh, văn bản.Có thể
là các thiết bị như PDA, điện thoại di động, máy tính…. Đây là thiết bị thuộc về phía
của người sử dụng (client).
Giao tiếp mạng: Là thành phần thứ hai của hệ thống mạng di động mà
chuyển dữ liệu người dùng và các yêu cầu dịch vụ từ các trạm di động để cung cấp
dịch vụ và sau đó trả các yêu cầu thông tin về cho người dùng.
Thành phần định vị: đối với dịch vụ xác định vị trí người dùng. Các vị
trí người dùng có thể được có thể nhận được bằng cách sử dụng mạng thông tin di
động, hoặc bằng cách dùng hệ thống định vị toàn cầu.Ngoài ra việc xác định vị trí
người dùng có thể không được xác định một cách tự động mà có thể xác định bằng tay
do người dùng thực hiện.
Nhà cung cấp dịch vụ và ứng dụng: Các nhà cung cấp dịch vụ cung cấp
một số dịch vụ khác nhau để người dùng sử dụng và chịu trách nhiệm sử lý các yêu cầu
của dịch vụ.Các dịch vụ này thường xác định vị trí, tìm ra một con đường,tìm kiếm
một địa điểm hoặc tìm kiếm một đối tượng cụ thể.
Nhà cung cấp dữ liệu và nội dung: dịch vụ này cung cấp các thông tin
theo yêu cầu của người dùng. Vì vậy cơ sở dữ liệu địa lý và dữ liệu của các địa điểm
thường được yêu cầu từ các cơ quan ( Ví dự cơ quan xây dựng bản đồ …) các doanh
nghiệp hoặc các đối tác công nghiệp (Ví dụ các trang vàng …..)
1.1.3 LBS hoạt động như thế nào?
Hình 1-3 Kiến trúc chung của dịch vụ hướng vị trí
Sau khi đã định vị thành công vị trí hiện tại với sự giúp đỡ của các công nghệ định vị,
dựa vào kết quả đó người dùng sẽ đưa ra một số câu truy vấn (Nhà hàng nào gần nhất?
ATM gần nhất là ở đâu?..) và gửi những truy vấn đó về trung tâm xử lý dịch vụ hướng
vị trí. Tại đây trung tâm xử lý sẽ tiến hành xử lý yêu cầu của người dùng, đồng thời kết
hợp với dữ liệu của nhà cấp để tạo thành một nội dung hoàn chỉnh và gửi thông tin trả
lời về cho người dùng
1.1.4 Ứng dụng của dịch vụ hướng vị trí trong các lĩnh vực khác nhau
Dịch vụ hướng vị đã trở nên phổ biến và là thành phần quan trọng trong hầu hết các
lĩnh vực công nghiệp. Tuy nhiên thị trường của dịch vụ hướng vị trí được chia ra thành
nhiều loại khác nhau bao gồm: định hướng, ứng cứu khẩn cấp, theo dõi, thanh toán,
quản lý, trò chơi và giải trí.
Ứng cứu khẩn cấp: Hãy tưởng tượng bạn đang đi du lịch vào một nơi
hoàn toàn xa lạ, và một tình huống không mong muốn đã xảy ra bạn bị gặp tai nạn. Và
thật tệ hại hơn khi bạn không biết mình đang đâu. Dịch vụ hướng vị trí sẽ giúp bạn giải
quyết vấn đề này. Dịch vụ hướng vị trí đóng vai trò quan trọng của việc tìm kiếm vị trí.
Ứng dụng LBSs sẽ chuyển vị trí hiện tại của bạn đến trung tâm hỗ trợ dịch vụ để kịp
thời ứng cứu. Dịch vụ này cũng có thể áp dụng cho các dịch vụ công cộng: cảnh sát, y
tế
Dịch vụ về giao thông, chỉ dẫn đường đi: Trong nhiều ứng dụng cho
dịch vụ di động dựa vị trí, dịch vụ về traffic là dịch vụ mà có khoản thu lợi nhuận
khổng lồ nhất. Người dùng sẳn sang trả tiền cho dịch vụ này để tiết kiệm thời gian và
thông tin giao thông. Lợi thế của ứng dụng real-time traffic ở chỗ là thông tin về giao
thông trên con đường đi là động, phụ thuộc vào ngữ cảnh tại thời điểm đó. Ứng dụng
này cho phép xác định lưu lượng người đang đi trên con đường đó, để xác định có nên
đi hay không, hoặc tìm một tuyến đường khác nhanh hơn. Thông tin về traffic trên con
đường được xác định qua bộ cảm biến.
Hình 1-4 Real time Traffic
Các dịch vụ hỗ trợ du lịch:Có thể nói trong các loại hình dịch vụ thì
dịch vụ du lịch đã và đang tận dụng công nghệ và dịch vụ dựa vị trí. Chủ yếu là dịch
vụ tìm kiếm địa chỉ, dựa vào địa chỉ người dùng đang đứng, ứng dụng sẽ cho biết
thông tin các địa điểm (point interest) mà người dùng cần quan tâm ví dụ như: cửa
hàng gần nhất, ATM gần nhất, trạm xăng gần nhất… Ngày nay, các dịch vụ này
thường được truy xuất thông qua SMS, WAP, và trong một số trường hợp thì nó được
kết hợp với navigation để hướng dẫn người dùng tìm con đường ngắn nhất.
Hình 1-5 Hình ảnh minh họa ứng dụng tìm kiếm địa điểm gần nhất trên di động
Quảng cáo và Marketing dựa trên vị trí: Sử dụng thông tin về vị trí
vào quảng cáo & marketing sản phẩm đã trở nên thành công lớn trong một số trường
hợp. Ứng dụng này thường tương tác với người dùng thông qua SMS, WAP.. Không
giống như quảng cáo trên tivi, báo chí, quảng cáo trên dựa vào vị trí cho phép chúng ta
chọn được đối tượng để quảng cáo, nhằm tập trung hơn. Kết quả là quảng cáo dựa vào
vị trí cung cấp thông tin cho khách hàng về sản phầm, dịch vụ tương ứng với từng địa
phương. Ví dụ khách hàng có thể nhận được những thông báo về những chương trình
khuyến mãi tại cửa hàng nào đó, bằng cách gửi thông điệp vào thiết bị di động của
người tiêu dùng khi người tiêu dùng đang đi trong vùng gần cửa hàng đang khuyến mãi
đó. Và quảng cáo theo dạng này chỉ hiệu quả khi người dùng không cảm thấy phiền khi
thông điệp quảng cáo tới.
Hình 1-6 Hình ảnh minh họa về quảng cáo SMS
1.1.5 Ưu điểm và nhược điểm của dịch vụ hướng vị trí
Dịch vụ hướng vị trí là một trong những sáng tạo công nghệ quan trọng trong thế giới
ngày hôm nay, đóng vai trò vào sự phát triển của xã hội. Dịch vụ hướng vị trí giúp
chúng ta trong quá trình quan lý nhóm tốt hơn, nâng cao khả năng an toàn với dịch vụ
trợ giúp cấp cứu khẩn cấp, và tiết kiệm thời gian, tiền bạc với dịch vụ dẫn đường trong
du lịch.
Tuy nhiên dịch vụ hướng vị trí cũng gây ra một số vấn đề liên quan đến tính riêng tư
của người dùng. Ví dụ như ứng dụng theo dõi ở các xí nghiệp về vận tải, chuyện gì xảy
ra nếu ứng dụng này được ứng dụng vào một mục đích khác, theo dõi người nào đó khi
chưa có sự đồng ý của người đó? Tất cả mọi di chuyển của người đó bị ghi nhận lại,
điều này có thể gây nguy hiểm cho họ. Chuyện gì xảy ra nếu bạn theo dõi tổng thống?
Cũng như bất kì công nghệ nào khác, tồn tại hai mặt ưu và nhược điểm là điều mà
không thể tránh khỏi. Tuy nhiên chúng ta cần phải xét xem, giá trị mà công nghệ đó
mang lại cho xã hội là như thế nào? Phát huy trường hợp sử dụng tốt của ứng dụng,
hạn chế các mặt tồn tại, “lỗ hổng” của ứng dụng
1.2 Lịch sử của LBS
Chương 2 CÁC CÔNG NGHỆ ĐỊNH VỊ
Nội dung của chương 2 trình bày về các công nghệ cũng như là các thiết bị
hỗ trợ cho việc định vị. Chương 2 sẽ truyền đạt cho chúng ta hiểu được “Để định vị
được thì chúng ta phải dùng công nghệ gì?” “Công cụ nào, thiết bị nào hỗ trợ cho việc
định vị?”
2.1 Tìm hiểu các công nghệ định vị hiện có
2.1.1 GPS (Global Positioning System)
GPS là một mạng lưới các vệ tinh liên tục gửi các tín hiệu, qua đó các máy thu GPS có
thể xác định vị trí của mình.
Các vệ tinh nói trên nằm trong quản lý của Bộ Quốc Phòng Mỹ, và có giá hàng tỉ đô la,
chưa kể là chi phí vận hành, được thiết kế ban đầu với mục đích quân sự. Những người
thiết kế ra nó cũng không thể ngờ rằng có một ngày, nó được phổ biến ở mức độ dân
dụng với các máy thu cầm tay nặng chỉ vài trăm gam, không chỉ cho biết vị trí bằng
các toạ độ kinh độ, vĩ độ mà còn có thể có màn hình, hiển thị bản đồ. Từ những ứng
dụng quân sự, năm 1980, chính phủ Mỹ ban hành một nghị định cho phép phổ biến kỹ
thuật này cho ứng dụng dân dụng, và những ứng dụng khổng lồ của nó đã được phát
triển không giới hạn. Nhiều bạn hỏi rằng có phải trả chi phí cho việc sử dụng GPS
không? Câu trả lời là có, nhưng may mắn phí này dân Việt ta không phải trả mà dân
Mỹ đã trả hết qua việc đóng thuế cho chính phủ Mỹ rồi. Như vậy, chi phí sử dụng của
GPS chỉ là mua máy và 2500 đồng cho mỗi vỉ pin con thỏ (cho khoảng 4 – 5 giờ hoạt
động). Hệ thống gồm 24 vệ tinh ( 21 vệ tinh hoạt động và 3 vệ tinh dự phòng). Các vệ
tinh chuyển động trên “quĩ đạo cao” cách mặt đất khoảng 19,300 km.
2.1.2 Hệ thống định vị Galileo
Hệ thống định vị Galileo là một hệ thống vệ tinh định vị toàn cầu (GNSS) được xây
dựng bởi Liên minh châu Âu và cơ quan vũ trụ Châu Âu,là một dự án dùng để thây thế
và bổ xung cho hệ thống GPS của Hoa Kỳ và GLONASS của Liên Bang Nga. Galileo
khác với GPS và GLONASS ở chỗ nó là một hệ thống định vị được điều hành và quản
lý bởi các tổ chức dân dụng, phi quân sự. Galileo theo kế hoạch sẽ chính thức hoạt
động vào năm 2011 – 2012.Mục đích chính của Galileo là cung cấp một hệ thống định
vị độc lập cho các quốc gia Châu Âu.
Sẽ miễn phí cho bất kỳ ai truy cập. Các dịch vụ mở sẽ được phát sóng ở 2 băng tần:
1164 – 1214Mhz và 1536 – 1591Mhz. Mục tiêu hổ trợ cho các hệ thống định vị trên
ôtô.
Các dịch vụ thượng mại: sẽ được thu phí và có độ chính xác cao hơn. Các dịch vụ
thương mại được bổ sung các trạm mặt đất để mang lại độ chính xác <=10m, tín hiệu
sẽ được phát sóng ở 3 băng tần: 2 tín hiệu của dịch vụ mở và 1 tín hiệu 1260-1300Mhz.
Các dịch vụ công cộng và các dịch vụ an toàn cho cuộc sống: phục vụ cho các cơ quan
an ninh và các ứng dụng ai toàn giao thông quan trọng.
2.1.3 Hệ thống GLONASS
Glonass đươc phát triển bởi Liên Xô và bây giờ là lực lượng không quân Nga, Glonass
phục vụ cho chính phủ Nga.
Glonass được xây dựng vào năm 1976,đến năm 1995 hệ thống được hoàn thành, nhưng
sau khi hoàn thành hệ thống nhanh chóng bị hư hỏng do sự xụp đổ của nền kinh tế
Nga. Đến năm 2001, Nga tiến hành khôi phục lại hệ thống.
Hệ thống Glonass hiện nay gồm 20 vệ tinh, trong đó có 19 vệ tinh hoạt động, hệ thống
Glonass hiện nay đã phủ sóng toàn bộ nước Nga.
Ngày 18/05/2007 tổng thống Nga đã ký quyết định chính thức cung cấp dịch vụ mở
cho mục đích dân sự từ hệ thống Glonass
2.1.4 Hệ thống Compass
Compass(còn được gọi là Beidou-2) là môt dự án phát triển hệ thống định vị toàn cầu
của Trung Quốc. Compass xây dựng chủ yếu nhắm mục đích phát triển kinh tế trong
nứơc,cung cấp các dịch vụ định vị vận tải ….Hệ thống sẽ cung cấp các dịch vụ cho
khách hàng trong nước và những quốc gia láng giềng vào năm 2008, trước khi mở ra
mạng lứơi định vị toàn cầu.
Compass gồm ít nhất 35 vệ tinh, 5 vệ tinh địa tĩnh, và 30 vệ tinh quỹ đạo trái đất tầm
trung.
Tần số của Compass được cấp phát trong 4 băng tần:E1,E2,E5B và E6 và chồng lắp
với Galileo.
2.1.5 Trạm thu phát sóng: BTS - Base Transceiver Station
Các trạm thu phát là nền tảng của truyền thông di động hiện đại, với ưu điểm cung cấp
tín hiệu tốt trong các vùng đô thị, chi phí thấp và dễ lắp đặt hơn so với vệ tinh, ta có thể
thấy các trạm thu phát ở hầu như mọi nơi.
Trạm thu phát là những điểm truyền / nhận sóng vô tuyến tới các thiết bị di động,
thường chỉ hoạt động trong một phạm vi nhất định. Thêm nữa, các dịch vụ di động chỉ
có thể dùng một số tần số đã được cấp phép (số lượng tần số này có hạn). Do đó, để có
thể cung cấp dịch vụ một cách xuyên suốt cho người dùng, các trạm thu phát thường có
vùng phủ sóng chồng lên nhau. Mật độ trạm thu phát cũng tùy vùng mà thay đổi:
Ở các vùng đô thị: Mật độ trạm phải cao vì
Có nhiều kiến trúc kiên cố, sóng vô tuyến không dễ xuyên qua
Lượng người dùng tập trung lớn trong khi số kênh thu phát lại phụ thuộc vào số
tần số được các tổ chức quản lý cho phép dùng nên cũng bị giới hạn, các trạm
buộc phải dùng lại cùng một kênh tại cùng một thời điểm mà không làm ảnh
hưởng lẫn nhau
Ở các vùng nông thôn thì mật độ trạm lại thấp vì lượng người dùng ít, các công trình
xây dựng thường không cao mà tầm phủ sóng của các trạm lại khá rộng.
Hình 2-7 Trạm thu phát
Vì các trạm thu phát là cố định, nên nếu biết được người dùng thiết bị di động đang ở
trạm thu phát nào gần nhất thì có thể suy ra được vị trí tương đối của người dùng. Tuy
nhiên sai số sẽ lớn ở các vùng nông thôn do mật độ trạm thưa và tầm phủ sóng của một
trạm có thể lên đến hàng kilômét.
Điện thoại di động có thể dựa vào mã số trạm, mã mạng và mã nước để truy vấn các cơ
sở dữ liệu vị trí trạm như OpenCellID, từ đó suy ra vị trí của mình
2.2 Tìm hiểu các thiết bị hổ trợ người dùng
2.2.1 PDA và điện thoại di động
Đây là các thiết bị được thiết kế cho người dùng cá nhân và cũng là thiết bị được nhiều
người sủ dụng nhất, khi công nghệ càng phát triển hiện đại thì các thiết bị này càng
được tích hợp nhiều công nghệ và bổ sung thêm nhiều chức năng giúp ích cho người
dùng. Khi các thiết bị PDA và điện thoại di động được tích hợp công nghệ định vị thì
sẽ giúp phát triển nhiều chức năng tiện ích phục vụ cho người dùng cá nhân như: bản
đồ, xác định vị trí, tìm kiếm địa điểm.
Hình 2-8 Nokia N95 và PDA có GPS
2.2.2 Dashtop
Dashtop la thiết bị ra đời để bổ sung các khiếm khuyết của các thiết bị di động(tiêu thu
điện năng nhiều khi sử dụng định vị liên tục…..). Các thiết bị Dashtop thường được
gắn vào các loại xe hơi hạng sang, dashtop hoạt động dựa trên nền tảng các công nghệ
không dây.
Dashtop cung cấp cho người dùng nhiều tiện ích khi lái xe: theo dõi lộ trình, xác định
vị trí, các cảnh báo an toàn khi lái xe…..
Hình 2-9 Xe hơi có thiết bị dashtop
2.2.3 Các thiết bị định vị khác
Với nhưng ai có nhu cầu sử dụng các bộ định vị, nhưng không muốn bỏ ra một số tiền
lớn để sắm PDA hoặc điện thoại di động, thì có thể chọn lựa các thiết bị GPS có giá cả
thấp hơn nhiều.
Ngoài ra, công nghệ phát triển ngày càng hiện đại, Ngày càng có nhiều thiết bị được
tích hợp GPS: máy nghe nhạc…..
Hình 2-10 Thiết bị GPS
2.3 Tìm hiểu các cách thức định vị.
Hiện nay có rất nhiều hệ thống phục vụ cho việc định vị, do đó cũng có rất nhiều
phương pháp định vị, Các phương pháp này có thể được chia làm 3 nhóm chính:
Định vị trên hệ thống mạng: Đây là phương pháp theo dõi và xác định vị
trí của người dùng được thực hiện bằng thực hiện bằng cách sử dụng
mạng lưới các trạm cơ sở.
Định vị trên thiết bị di động: Các thiết bị đầu cuối tự đinh vị dựa trên các
hệ thống thống định vị toàn cầu: GPS, Galileo….
Kết hợp định vị trên hệ thống mạng và định vị trên hệ thống di động…
Các nguyên tắc cơ bản để xác định vị trí của người sử dụng:
Các trạm cơ sở nhận biết được vị trí.
Thông tin từ các tín hiệu được chuyển thành khoảng cách.
Cách tính vị trí bằng cách sử dụng khoảng cách đến các trạm cơ sở.
Hình 2-11 Các loại định vị di động
2.3.1 Tìm hiểu về Cell ID
Thường dùng trên điện thoại di động và việc định vị không cần độ chính xác cao.
Phương pháp này chỉ đơn giản tìm trạm phát sóng gần người dùng nhất, từ đó biết
được người dùng đang ở trong tầm phát của trạm đó.
Vì được triển khai cùng với các trạm thu phát sóng nên phương pháp định vị này đang
được sử dụng khá rộng rãi, trong đó có cả việc định vị người gọi các cuộc gọi khẩn cấp
đến dịch vụ 911 ở Mỹ. Phương pháp định vị này được hỗ trợ trên hầu hết thiết bị sản
xuất bởi các công ty lớn như Nokia và Sony Ericsson.
Phương pháp này có ưu điểm là nhanh và khá chính xác ở những vùng đô thị (các trạm
được đặt dày hơn và phục vụ một khu vực nhỏ hơn). Tuy nhiên sai số có thể lên đến
32km ở vùng nông thôn, phụ thuộc vào tầm phủ sóng của trạm thu phát.
Cell 2
Cell 3Người dùng
Hình 2-12 Định vị theo phương pháp Cell identification
Hiện phương pháp này đã được cải tiến bằng cách kết hợp thêm thông tin về các vị trí
trước đó của người dùng, cũng như khoảng cách giữa các lần truyền dữ liệu để tăng độ
chính xác; sai số ở các vùng nông thôn chỉ còn 550m. Vì chỉ sử dụng tín hiệu từ một
trạm nên CellID được xếp vào nhóm định vì từ một phía (unilateration)
2.3.2 Tìm hiểu về GPS
a. Các thành phần của GPS
Hệ thống GPS gồm có 3 thành phần chính: hệ thống không gian, Trạm điều khiển và
người dùng.
Hệ thống không gian: Bao gồm 24 vệ tinh là trái tim của toàn bộ hệ
thống. Các vệ tinh chuyển động trên “quĩ đạo cao” cách mặt đất khoảng 19,300 km.
Với độ cao như vậy, cho phép tín hiệu của mỗi vệ tinh có thể che phủ một vùng rộng
hơn trên trái đất. Các vệ tinh được trên quĩ đạo của chúng bố trí sao cho một máy thu
GPS trên mặt đất có thể “nhìn thấy” tối thiểu 4 vệ tinh vào bất kỳ thời điểm nào. Các
vệ tinh hoàn thành 2 vòng quĩ đạo trong vòng mỗi ngày đêm. Các vệ tinh sử dụng năng
lượng mặt trời, và được trang bị ắc qui để hoạt động khi bị che khuất hoặc nhật thực
vv… Ngoài ra, còn có các tên lửa đẩy nhỏ để điều chỉnh quĩ đạo khi cần.
Trạm điều khiển: Trạm điều khiển làm cái việc mà nó mang tên. Các
trạm điều khiển này theo dõi và cung cấp cho các vệ tinh thông tin về vị trí và thời gian
với độ chính xác cao. Có 5 trạm được bố trí trên toàn thế giới, 4 cái không tên và một
trạm trung tâm. Các trạm không tên liên tục thu nhận thông tin và truyền về trạm trung
tâm để xử lý và phát lên các vệ tinh các thông tin hiệu chỉnh.
Người dùng: Người dùng sử dụng các thiết bị hổ trợ GPS để xác định vị
trí …, bao gồm thuỷ thủ, phi công, tài xế … bất kỳ ai muốn biết họ đang ở đâu, đã đi
qua những đâu và đang đi tới nơi nào.
b. GPS hoạt động như thế nào ?
Các vệ tinh thực hiện gửi một tín hiệu (có thể gọi là mã số vệ tinh(almanac) ), mã này
sẽ chứa các thông tin về vị trí của vệ tinh trên quỹ đạo và được lưu vào trong các thiết
bị thu tín hiệu GPS. Khi các vệ tinh di chuyển thì các tín hiệu cũng được cập nhật liên
tục vào trong các thiết bị thu.
Vì vệ tinh có thể đi chênh lệch khỏi quỹ đạo một chút ít, nên trạm điều khiển mặt đất
sẽ lưu giữ các thông tin về quỹ đạo, độ cao, vị trí và tốc độ của vệ tinh. Những thông
tin này được chuyển về trung tâm điều khiển, ở đây, nó sẽ được xử lý (thường theo tần
suất 4 – 6 giờ / lần) (đượcgọi là ephemeris) và được gửi theo tín hiệu vệ tinh đến máy
thu.
Máy thu sẽ tổng hợp 2 thông tin almanac và ephemeris để xác định vị trí của vệ tinh.
c. GPS định vị như thế nào?
Để xác định được vị trí thì các thiết bị thu cần phải xác định được ít nhất 4 vệ tinh,
Tính toán khoảng cách các vệ tinh và xác định vị trí.
Thiết bị thu nhận được 2 loại thông tin là almanac và ephemeris,thiết bị thu sẽ dùng 2
thông tin này để xác định vị trí của vệ tinh.
Bên cạnh đó thiết bị thu cần phải biết khoảng cách từ các vệ tinh đến vị trí cần xác định
trên mặt đất thông qua công thức: s = v * t.
Với: s: Khoảng cách.
v: Là vận tốc.
t: Là thời gian.
Trong công thức ta chỉ cần xác định được khoảng cách của máy thu và vệ tinh vì. Vệ
tinh truyền tín hiệu với tốc độ ánh sáng: v = 300000km/s, thời gian được tính từ lúc vệ
tính phát tín hiệu cho đến khi thiết bị thu nhận được tín hiệu.
Hình 2-13Hệ thống vệ tinh GPS
d. Các cải tiến
GPS thông thường có độ sai lệch khoảng vài chục tới vào trăm mét; tuy nhiên một số
ứng dụng có thể đòi hỏi độ chính xác cao hơn thế. Để tăng tính chính xác cho việc định
vị, một số hệ thống hỗ trợ GPS đã được tạo ra, chúng có thể là:
Hệ thống WASS (Wide Area Augmentation System)
WASS là một hệ thống vệ tinh khác của cục hàng không liên bang Hoa
Kỳ. Hệ thống này gồm các trạm thu mặt đất nhận tín hiệu của GPS, tính toán các sai
lệch trong tín hiệu nhận được và truyền lên một hệ thống vệ tinh địa tĩnh từ đó đến với
các thiết bị định vị. Các thiết bị định vị có thể trừ sai lệch từ tín hiệu của GPS với
thông số nhận được từ WAAS để có được vị trí chính xác hơn. WAAS giảm sai số của
GPS từ vài chục mét xuống dưới 10m.
Hình 2-14 Kiến trúc WAAS
Công nghệ A-GPS
Trong nhiều điều kiện thực tế, việc truyền dẫn tín hiệu GPS giữa vệ tinh
và thiết bị nhận trên mặt đất hoạt động rất kém hoặc thậm chí không thể hoạt động,
nhất là trong các thành phố lớn nhiều nhà cao tầng hoặc ở trong không gian kín. A-
GPS chính là giải pháp cho vấn đề này.
Đơn giản, thay cho việc truyền tín hiệu trực tiếp với vệ tinh, A-GPS kết
nối tín hiệu qua một “trạm trung chuyển” là một hệ thống máy chủ hỗ trợ. Hệ thống
trung gian này xác định vị trí của thiết bị so với các trạm thu phát sóng của các mạng
điện thoại trung gian trong khu vực và từ đó tính toán ra vị trí trên hệ thống GPS. Có
thể nói, nếu không có sự hỗ trợ của các trạm trung chuyển qua mạng điện thoại di động
này, thiết bị A-GPS vẫn có thể nhận được tín hiệu từ vệ tinh nhưng không có khả năng
giải mã vị trí.
Hình 2-15 Mô hình A-GPS
2.4 Thuận lợi và khó khăn khi sử dụng công nghệ định vị
2.4.1 Định vị bằng vệ tinh
a. Thuận lợi
Cho kết quả định vị có tỷ lệ sai số thấp có thể dưới 10m
Có vùng phủ sóng rộng lớn.cả vùng núi hiểm trở, trên biên đông hay
trong các vùng sa mạc vắng bóng người.
b. Khó khăn
Chi phí triển khai hệ thống tốn kém, chỉ có các nước có tiềm lực kinh tế
mạnh mới xây dựng được các hệ thống định vị.
Khi gặp thời tiết không thuận lợi (mưa, bảo …) sẽ ảnh hướng nhiều đến
chất lượng tín hiểu phát ra từ các vệ tinh.
2.4.2 Định vị bằng Cell ID
a. Thuận lợi
Cho kết quả nhanh và tương đối chính xác ở các vùng đô thị, Khi mật độ
các trạm phát sóng nhiều.
Sử dụng hệ thống điện thoại di động sẵn có nên không tốn chi phí cao.
b. Khó khăn
Sai số lớn ở các khu vực nông thôn khi các trạm phát sóng nằm cách xa
nhau, mỗi trạm phủ trên một vùng rộng lớn, khi đó viêc xác định vị trị sẽ có sai số cao
lên tới 32km
Chương 3 CÁC NỀN TẢNG HỖ TRỢ LẬP TRÌNH LBS
Nội dung của chương 3 trình bày về các nền tảng hỗ trợ cho lập trình LBS.
Chương 3 nhấn mạnh vào việc phân tích những điểm ưu và khuyết của từng nền tảng
hỗ trợ cho lập trình LBS, đồng thời có sự sánh giữa các nền tảng nhằm chọn ra nền
tảng thích hợp cho luận văn. Đây được coi là chương quan trọng, nhằm định hướng
cho luận văn chọn và sử dụng nền tảng nào hỗ trợ cho luận văn.
3.1 Google Maps API
3.1.1 Giới thiệu về Google Maps API
GoogleMap là một dịch vụ ứng dụng và công nghệ bản đồ trực tuyến được công ty
Google cung cấp. Google map cung cấp một giao diện trực quan cho việc thao tác bản
đồ với các đường đi chi tiết và những dữ liệu hình ảnh được nhúng vào bên trong.
Google map cho phép thấy bản đồ đường xá, đường đi cho xe đạp, đường di cho người
đi bộ, đường đi cho xe hơi…và những địa điểm kinh doanh trong khu vực và trên toàn
thế giới Ngoài ra người dùng có thể sử dụng GoogleMap để nhúng vào các ứng dụng
web của mình thông qua công cụ mở rộng của GoogleMap là GoogleMaps API
Hình 3-16 Giao diện của google map trên Web
Với Google Maps API nhà phát triển sẽ dễ dàng tích hợp Google Map vào các trang
web của mình với các dữ liệu của riêng họ. Đây là một dịch vụ miễn phí và không có
quảng cáo kèm theo.
Ví dụ: Một cơ quan bất động sản có thể sử dụng một ứng dụng sử dụng Google Maps
API dựa trên web, cho phép người sử dụng có thể tìm kiếm các khu đô thị và kết quả
được hiển thị trực quan trên Google Map.
3.1.2 Ưu điểm và khuyết điểm của Google Maps API
a. Ưu điểm
Google Maps API được cung cấp miễn phí.
Hệ thống API đơn giản dể hiểu và có tài liệu hướng dẫn rõ ràng. Có thể
tham khảo hướng dẫn sử dụng Google Maps API tại
http://code.google.com/apis/maps/documentation/index.html
b. Khuyết điểm
Google Map chỉ cung cấp hệ thống đường phố và địa điểm ở một vài
thành phố của một vài quốc gia, ở Việt Nam Google Map chỉ mới cung cấp tên đường
nhưng chưa được chi tiết, do đó các nhà phát triển ứng dụng dựa trên Google Map cần
bổ sung dữ liệu về đường phố và địa điểm để có thể tìm kiếm đường đi hoặc địa điểm.
3.1.3 Giải pháp và ứng dụng của Google Maps API
Xây dựng bản đồ hướng dẫn các nhà hàng,văn phòng,cửa hàng,khách sạn
và danh sách các bất động sản hoàn chỉnh với các hình ảnh và mô tả thích hợp.
Xây dựng bản đồ các tuyến đường xe đạp, đi bộ…
Hiển thị các hình ảnh, video từ Youtube,Picasa, Flickr tại các điểm trên
bản đồ. Ví dụ cho thấy chính xác vị trí trên bản đồ, nơi mà các hình ảnh và video đã
được chụp.
Nhúng Google Map vào các website.
Cho biết được thời tiết, các vùng lũ lụt,hạn hán ….
3.1.4 Cách thức sử dụng Google Maps API
Như chúng ta đã biết để tạo một ứng dụng bảng đồ sử dụng Google Maps API thì thật
là đơn giản. Do đó để hiểu rõ hơn các API của Google Map ta cần tìm hiểu chi tiết về
các API này.
Hình 3-17 Các thành phần của Google Maps
Trong hình trên, chúng ta đã thấy được một mô tả trực quan về các đối tượng thường
được sử dụng trong google maps API, tất cả các ứng dụng của Google Maps sẽ có một
bản đồ gồm các đối tượng như hình trên. Bản đồ này được đại diên bởi API của đối
tượng GMAP2,ngoài ra chúng ta có thể thêm vào một vài đối tượng khác như:
GlargeMapControl, GsmallMapControl,GmapTyleControl, và một đối tượng vừa mới
được Google bổ sung thêm là GoverviewMapControl. Những đối tượng này cho phép
người dùng phóng to, thu nhỏ, xoay bản đồ, cho … Gmarker cho phép hiển thị các loại
địa điểm với mỗi loại được đại diện bằng một biểu tượng. Người dùng có thể sử dụng
các biểu tượng mặc định của Google Map hoặc thay đổi các biểu tượng theo ý thích
của người dùng..Info Window thường sử dụng để kếp hợp Gmarker để hiển thị thông
tin của các điểm đã được dánh dấu.Ví dụ trong một ứng dụng bất động sản ta có thể
hiển thị chi tiết của một căn nhà, một mãnh đất như là: diện tích, giá bán, địa chỉ….
Sau đây các lớp chính trong Google Maps API:
- GMap2
- GPoint và GlatLng
- GMarker
- GPolyline
- Gsize
- GLatLngBounds
Để sử dụng được Google Maps API chúng ta cần làm các bước như sau:
Chúng ta vào trang chủ của Google Map API (
http://code.google.com/apis/maps/signup.html ) đăng ký một khóa của Google Maps
API, trước khi đăng ký chúng ta phải đăng nhập bằng tài khoản của Gmail.
Sau đó chúng ta nhận được 1 khóa và những đoạn mã nguồn mẫu do
Google Map cung cấp, người dùng có thể sử dụng các hàm API do Google Map cung
cấp để thây đổi, bổ sung thêm các đường đi, địa điểm … sao cho phù hợp với mục đích
của người sử dụng.
3.2 Navizon API
3.2.1 Giới thiệu về Navizon API
Navizon là một hệ thống định vị được phát triển bới công ty Navizon được thành lập
năm 2005. Navizon là hệ thống định vị kết hợp GPS, Wifi, tín hiệu di
động(triangulation Cellular). Nó tính toán vị trí địa lý của một thiết bị không dây bằng
cách phân tích các tín hiệu thu được từ các wifi và các trạm di động và so sánh với một
cơ sở dữ liệu sẵn có.
Hình 3-18 Mô hình hoạt động của hệ thống Navizon
Ngoài ra để cung cấp cho các nhà phát triển phần mềm ứng dụng các công nghệ của
Navizon để phát triển các ứng dụng của riêng họ, Navizon đã cho ra đời hệ thống
Navizon API. API Navizon đã cung cấp cho người dùng khả năng tạo ra các giải pháp
và ứng dụng về vị trí cho người dùng, các ứng dụng này có thể đáp ứng cho người
dùng hoặc các doanh nghiệp …
Các API cung cấp cho phép nhà phát triển truy cấp các thông tin vị trí thông qua một
giao diện chuẩn,các API sẽ không bị thây đổi khi người dùng sử dụng các công nghệ
WIFI, GPS, các tháp di động (cell towers), nhưng sự chính xác khi kết quả trả về sẽ
khác nhau tùy theo công nghệ định vị người dùng sử dụng.
Các Navizon API cho phép các ứng dụng bên ngoài yêu cầu và nhận các tọa độ cho
một vị trí bất kỳ của một wifi, một trạm di động,hay một thiết bị GPS được kích hoạt,
Navizon API cung cấp các tọa độ chuẩn của hệ thống World Geodetic System(WGS
84)(1).
Navizon cung cấp 2 phiên bản của Navizon API
Navizon API chỉ dùng cho các thiết bị GPS. Với hệ thống API này
Navizon cung cấp miễn phí cho người sử dụng.
Navizon API cung cấp cho các thiết bị GPS với khả năng cao hơn so với
phiên bản miễn phí, và các API hổ trợ cho wifi và các thiết bị phát sóng di động. Với
các API này các thiết bị hổ trợ hệ điều hành Window Mobile và Symbian có thể sử
dụng GPS để định vị các vị trí có sóng GPS yếu như: trong nhà, trong hẽm núi ….
Ngoài ra nó có thể định vị dựa trên các hệ thống wifi và thiết bị phát sóng di động khi
người dùng không có thiết bị GPS, do đó với hệ thống API này có thể đáp ứng được số
lượng lớn người sử dụng. Đây là hệ thống thương mại được Navizon bán với giá 19,95
USD cho một thiết bị được sử dụng trong 1 năm.
3.2.2 Ưu điểm và khuyết điểm của Navizon API
a. Ưu điểm
Các nhà phát triển có thể phát triển ứng dụng trên web và trên di động
với hệ thống API sẵn có.
Các Navizon API khi sử dụng trên nền web có thể chạy trên nhiều hệ
điều hành khác nhau: Mac OS, Microsoft Window.
Các Navizon API khi sử dụng trên môi trường di động có thể hoạt động
tốt trên nhiều hệ điều hành di động: Window mobile, symbian, Iphone, Blackberry và
một số hệ điều hành hổ trợ J2ME.
b. Khuyết điểm
Các nhà phát triển phải trả phí khi sử dụng các Navizon API hổ trợ công
nghệ wifi, trạm di động.
Hê thống sẽ hoạt động giới hạn khi sử dụng các tín hiệu wifi và các tín
hiệu di động.
3.2.3 Giải pháp và ứng dụng của Navizon API
a. Navizon API trên web.
Hình 3-19 Navizon API trên web
Các Navizon API xây dựng trên nên web được Navizon xây dựng dưới dạng các java
applet để các nhà phát triển có thể nhúng trực tiếp vào trang web. Nó sẽ xác định vị trí
địa lý của người sử dụng thông qua tín hiệu phát sóng của các điểm truy cập wifi xung
quanh người sử dụng.
Do các Navizon API trên web được xây dựng là các Java Applet do để để ứng dụng
chạy được cần phải cài đặt các plugin java.
Navizon API trên web có thể chạy trên môi trường Microsoft Window và Mac OS.
a. Navizon API trên thiết bị di động
Hình 3-20 Navizon API trên các thiết bị di động
Đối với người dùng thiết bị di động không có GPS, Navizon API sẽ làm việc như một
GPS ảo trên một thiết bị gi động dùng wifi hoặc tín hiệu di động. Khi đó chỉ cần gọi
một hàm API Navizon đơn giản các nhà phát triển ứng dụng có thể thu thập các kinh
độ và vĩ độ của thiết bị di động của người sử dụng.
Đối với người dùng thiết bị di động có GPS, Navizon API có thể cung cấp cho các nhà
phá triển ứng dụng các thông tin định vi khi có tín hiệu GPS,mặt khác với những nơi
không có tín hiệu GPS hoặc tín hiệu GPS yếu thì các Navizon API sẽ sử dụng các tín
hiệu của WIFI hoặc tín hiệu của hệ thống di động để giúp các nhà phát triển ứng dụng
xác định được các thông tin định vị.
3.2.4 Cách thức sử dụng Navizon API
Như chúng ta đã biết thì hệ thống Navizon API là một sản phẩm thương mại và do đó
các nhà phát triển ứng dụng muốn sử dụng Navizon API cần phải trả chi phí theo từng
máy đơn. Ngoài ra Navizon API còn cung cấp một phần miễn phí cho việc phát triển
các ứng dụng trên hệ thống di động có tích hợp thiết bị thu GPS.
Để sử dụng Navizon API được cung cấp miễn phí ta cần làm các bước sau:
Vào trang web cua Navizon: www.navizon.com
Chọn phần download Navizon. Ở đây chúng ta chỉ download phần miễn
phí của navizon. Chọn download Navizon tùy vào môi trường mà người phát triển ứng
dụng mong muốn.Navizon có nhiều phiên bản cho nhiều hệ điều hành khác nhau:
Window Vista,Window XP, Mac OS,Window mobile, Symbian, Blackberry, Iphone,
và một vài dòng mày có Java.
3.3 Yahoo API
3.3.1 Giới thiệu về Yahoo API
Yahoo Map API là thư viện miễn phí được cung cấp bởi Yahoo để hỗ trợ cho lập trình
viên nhúng bản đồ vào ứng dụng website, desktop. Yahoo map được công ty Cartfact
thiết kế và cung cấp dữ liệu. Yahoo map chính thức đi vào hoạt động vào ngày
16/05/2007. Yahoo cung cấp hình ảnh bản đồ dưới 3 dạng: Dạng hình ảnh vẽ, dạng
hình ảnh vệ tinh, dạng hình ảnh kết hợp hình ảnh vẽ và vệ tinh
Hình 3-21 Hình ảnh vệ tinh kết hợp hình ảnh vẽ
Hình 3-22 Hình ảnh vẽ
Hình 3-23 Hỉnh ảnh vệ tinh
Từ lúc mới ra đời, dịch vụ chính mà API này cung cấp là dịch vụ về bản đồ đường và
hướng dẫn đường đi ở Mỹ và Canada. Ngày nay API đã phát triển thêm một số tính
năng đáng kể khác như:
Address Book: Cho phép người sử dụng có thể lưu một danh sách các
con đường thường dùng để người dùng không cần gõ lại địa chỉ đường, chỉ cần gõ lại
một số kí tự thì sẽ xuất hiện dưới drop down list.
Hình 3-24 Dịch vụ lưu trữ địa điểm trên Yahoo Map
Live Traffic: Cho phép người dùng xem mật độ giao thông trên con
đường.
Hình 3-25 Real-time traffic trên Yahoo Map
Point of Interest Finder: Cho phép tìm kiếm các địa chỉ thông dụng gần
vị trí hiện tại (nhà hang ở đâu?, ATM ở đâu? …), cũng như là thể hiện thông tin chi
tiết: số điện thoại, hình ảnh về địa điểm đó.
Hình 3-26 Point Interest Finder
Driving Directions: Chỉ dẫn cho người đi đường để đi đến đích bằng các
vẽ lên bản đồ hoặc hiển thị dạng text rồi gửi đến điện thoại di động.
Hình 3-27 Tìm đường dưới dạng thể hiện hình ảnh
Hình 3-28 Tìm đường thể hiện dưới dạng text
Ngoài các dịch vụ đó Yahoo Map còn cung cấp các API thông qua webservice để lập
trình viên có thể sử dụng để triển khai các dịch vụ trên cho ứng dụng của mình. Yahoo
API cung cấp API dưới dạng các nền tảng ứng dụng Flash, Ajax, Hình ảnh cho bản đồ
(Map Images).
a. AJAX API
Giới thiệu
Yahoo AJAX Maps API cho phép lập trình viên nhúng bản đồ vào website của họ sử
dụng HTML và Javascript. Bản đồ được nhúng và các đoạn mã thực thi đều sử dụng
Javascript. Các ứng dụng bản đồ được xây dựng dựa trên nền Yahoo Map AJAX đã
được kiểm thử và chạy ổn định với các trình duyệt FireFox 2, IE 6 hoặc 7, Opera 9,
Safari 3. Các trình duyệt mới hơn cũng được hỗ trợ.
Mỗi ứng dụng sử dụng Yahoo Map AJAX đều có một ID được đăng kí với Yahoo
Các chức năng được hỗ trợ
Hiển thị Yahoo Map trong ứng dụng web của mình: Mọi lớp API và các
phương thức cần thiết để tương tác với Yahoo Map được tích hợp vào ứng dụng của
bạn khi ứng dụng của bạn “add reference” đến thư viện Yahoo Map AJAX API.
Thêm các điều khiển vào bản đồ: Yahoo Map AJAX hỗ trợ và cung cấp
cho chúng ta thêm các điều khiển vào bản đồ trên ứng dụng của mình. Các điều khiển
phổ biến là: điều khiên PAN (kéo vùng nhìn bản đồ), ZOOM (phóng to thu nhỏ bản
đồ), Map types (Thể hiện 3 dạng bản đồ: Hình ảnh vẽ, vệ tinh, kết hợp)
Sử dụng log: Yahoo Map API còn cung cấp thêm một tiện ích YLog cho
bản đồ. YLog rất hữu ích cho việc bắt lỗi, và xem dữ liệu trong khi ứng dụng đang
chạy
Đánh dấu vị trí: API hỗ trợ cho phép bạn đánh dấu một địa điểm nào đó
trên bản đồ. Việc đánh dấu có thể là thêm hình ảnh, chú thích cho vị trí đó
Hiển thị thông tin giao thông trên bản đồ
Tìm kiếm vị trí
b. Flash API
Giới thiệu
Với thư viên hỗ trợ Flash và Flex 3 cho phép bạn nhúng bản đồ vào cả 2 loai ứng
dụng: web và desktop. Việc sử dụng bản đồ dưới dạng Flash trong các dự án Flash,
Flex, Ajax làm tăng khả năng linh hoạt của dự án.
Các chức năng được hỗ trợ
Với Yahoo Flash API cũng hỗ trợ các chức năng về định tuyến, tìm kiếm vị trí và
các API về giao thông như thư viện Yahoo Ajax API.
c. Yahoo! Maps Web Services - Geocoding API
Giới thiệu
Geocoding Web Service cho phép bạn tìm kiếm chuyển đồi từ tọa độ longitude và
latitude sang địa chỉ vật lý. Bạn có thể sử dụng để geocode để kết hợp với geocoding
trong ứng dụng có sử dụng AJAX và Flash API.
Địa chỉ WebService: http://local.yahooapis.com/MapsService/V1/geocode
Tham số truyền vào
Tham
số
Kiểu Mô tả
appid string
(required)
Mã số của ứng dụng
street string Tên đường
city string Thành phố
state string Bang (Mỹ). Nếu ở nước khác thì trống
zip integer Mã Zipcode của đất nước
locatio
n
Dạng tự do Địa chỉ cần truy vấn. Địa chỉ cần truy vấn được viết
dưới dạng tự do, nhưng phải theo quy luật sau:
Thành phố, bang
Thành phố, bang, zipcode
ZipCode
Đường,Thành phố,Bang
Đường,thành phố,Bang,Zipcode
Đường, Zipcode
output string Xuất kết quả trả về theo dạng XML.
3.3.2 Ưu điểm và khuyết điểm của Yahoo API
a. Ưu điểm
Yahoo Map API cung cấp cho lập trình viên dễ dàng thực hiện nhúng
bản đồ vào ứng dụng của mình.
Hỗ trợ trên 2 nên ứng dụng web và desktop
Hỗ trợ làm việc trên nhiều platform: AJAX, Flash, Flex, Map Image
Tài liệu cùng các ví dụ rõ ràng, hỗ trợ cho lập trình viên dễ dàng trong
việc làm quen với môi trường mới
b. Khuyết điểm
Dữ liệu bản đồ còn hạn chế. Mới chỉ có của Mỹ và Canada.
Chất lượng hình vẽ không tốt.
3.3.3 Cách thức sử dụng Yahoo API
Để sử dụng được Yahoo Map API, lâp trình viên phải:
Đăng kí mã số cho ứng dụng sử dụng Yahoo Map API. Để đăng kí bạn
truy cập vào site https://developer.apps.yahoo.com/wsregapp/. Tại đây bạn khai báo
ứng dụng, mục đích ứng dụng và tài khoản đăng kí của bạn. Hệ thống Yahoo sẽ cung
cấp cho các bạn một ID của application. Lưu ý bạn chỉ dùng một ID cho một ứng dụng
duy nhất. ID có dạng như sau: YD-eQRpTl0_JX2E95l_xAFs5UwZUlNQhhn7lj1H.
Tìm hiểu các API mà Yahoo hỗ trợ cũng như cách sử dụng của nó. Link
tham khảo: http://developer.yahoo.com/maps/ajax/V3.8/reference.html
Các ví dụ minh họa được thể hiện có thể download tại địa chỉ:
http://developer.yahoo.com/maps/ajax/V3.8/yahoo_maps_ajax_api_reference_bundle.z
ip.
3.4 Bing Maps API
3.4.1 Giới thiệu vế Bing Maps API
Bing Map là một nền tản bản đồ được phát triển bởi công ty Microsoft, phiên bản
trước đây của Bing Map là Microsoft Virtual Earth.Bing Map cho phép người dùng
khám phá, tìm kiếm chia sẽ thông tin, địa điểm trên hệ thống bản đồ một cách trực
quan. Bing Map có thể hiển thị bảng đồ ở nhiều dạng khác nhau: 3D, 2D….
Hình 3-29 Màn hình chính của Bing Map
Ngoài ra để cung cấp cho các nhà phát triển phần mềm có thể sử dụng nền tản của Bing
Map để xây dựng các ứng dụng, Microsoft đã cho ra đời hệ thống Bing Map API gồm
hệ thống các lớp giúp nhà phát triển phần mềm có thể khai thác các tài nguyên của
Bing Map. Bing Map API được cung cấp dưới dạng gói phát triển phần mềm SDK
(software development kit).
3.4.2 Ưu điểm và khuyết điểm của Bing Maps API
a. Ưu điểm
Hệ thống SDK của Bing Map được cung cấp miễn phí người dùng có thể
download tài liệu hướng dẫn tại trang web
(http://www.microsoft.com/downloads/details.aspx?familyid=09905EEA-F8D4-4AF3-
BB35-B479BF342E1E&displaylang=en).
Giống như Google Map API, Bing Maps API cung cấp hệ thống API đơn
giản, dể sử dụng. Người dùng có thể dễ dàng nhúng Bing Maps vào trang web của
mình.
Tài liệu hướng dẫn API đầy đủ, người dùng có thể dowload các tài liệu
hướng dẫn của Bing Maps API đi kèm theo gói phát triển phần mềm (SDK).
Mô hình dữ liệu Web cung cấp cho người dùng khả năng truy cập dữ
liệu bản đồ mà không cần tải về bất cứ một phần mềm nào.
b. Khuyết điểm
Hệ thống bản đồ của Bing Map chỉ cung cấp đầy đủ thông tin và địa
điểm của nước Mỹ và các thành phố lớn trên thế giới. Còn ở những nước khác để hiển
thị thêm thông tin đường đi và địa điểm thì các nhà phát triển phần mềm cần sử dụng
hệ thống Bing Map API để bổ sung vào.
3.4.3 Giải Pháp và ứng dụng của Bing Maps API
Dành cho thiết bị di động: Phát triển các ứng dụng trên các thiết bị di
động với hệ thống hình ảnh phong phú, bao gồm cả Iphone.
Tạo ra hình ảnh 3D cho quan cảnh và các tòa nhà trong các thành phố.
Hướng dẩn cho tài xế và người di bộ có thể tìm được đường đi đến vị trí
mà họ mong muốn.
Cho phép người dùng dánh dấu trực tiếp trên bản đồ những địa điểm mà
người dùng cần ghi chú lại.
3.4.4 Cách thức sử dụng Bing Maps API
Hình 3-30 Hệ thống Bing Maps API
Để tìm hiểu về các lớp trong hệ thống Bing Map Api người sử dụng có
thể download SDK từ trang web. ( http://www.microsoft.com/downloads/details.aspx?
FamilyID=09905eea-f8d4-4af3-bb35-b479bf342e1e&displaylang=en ). Ở đây chỉ chứa
file một file CHM hướng dẫn người dùng cách sử dụng các lớp trong hệ thống API của
Bing Maps.
Bing Map cung cấp cho người dùng các web services. Để sử dụng Bing
Maps trong các ứng dụng của mình người dùng cần đăng ký các Webservices để sử
dụng các lớp do Bing Map cung cấp.
VEGeocodingService: Cung cấp các lớp xác định tạo độ, đưa vào
một địa chỉ và cho kết quả là một tọa độ tương ứng.
http://staging.dev.virtualearth.net/webservices/v1/geocodeservice/geocodeservice.svc?
wsdl
VESearchService:Webservices này cung cấp các lớp Cho phép
người dùng thực hiện các khả năng tìm kiếm vị trí,địa điểm …
http://staging.dev.virtualearth.net/webservices/v1/searchservice/searchservice.svc?
wsdl.
VEImageryService: Webservices này cung cấp các lớp thực hiện
2 chức năng chính. Chức năng đầu tiên là lấy thông tin từ các siêu dữ liệu bao gồm
ngày tạo và các hạng mục hình ảnh. chức năng thứ hai là để lấy hình ảnh bản đồ.
http://staging.dev.virtualearth.net/webservices/v1/imageryservice/imageryservice.svc?
wsdl
VERoutingService: Webservices này cung cấp các lớp cho phép
người dùng tính toán lộ trình và tính toán đường đi gần nhất khi đi từ địa điểm này đến
địa điểm khác.
http://staging.dev.virtualearth.net/webservices/v1/routeservice/routeservice.svc?wsdl
3.5 Vietbando API
3.5.1 Giới thiệu về Vietbando API
Vietbando Maps API giúp bạn tích hợp bản đồ của Vietbando vào trang web của bạn.
Tương tự như Yahoo Map API, Vietbando Map API cung cấp thông qua Javascript +
DHTML. Hiện tại Vietbando chỉ hỗ trợ bạn nhúng vào ứng dụng web. Vietbando cung
cấp dữ liệu khá chi tiết cho khu vực ở VietNam. VietBando sẽ là một API tốt để cho
các ứng dụng triển khai tại Viêt Nam.
Vietbando API cung cấp một số lượng khá nhiều phương thức để thao tác trên bản đồ.
Được cung cấp dưới các lớp của Javascript. Bao gồm các lớp:
Các lớp để hiển thị bản đồ
Các lớp để mở rộng chức năng của Vietbando API
Hình 3-31 Hình ảnh bản đồ trên VietBanDo
3.5.2 Ưu điểm và khuyết điểm của Vietbando API
a. Ưu điểm
Là một thư viện miễn phí cho lập trình LBS
Cung cấp API cho các ứng dụng khác thông qua nền Javascipt
Phân lớp và phương thức rõ ràng. Kèm theo là tài liệu, hướng dẫn sử
dụng chi tiết
Dữ liệu có chiều sâu ở Việt Nam. Thích hợp cho các ứng dụng trên lãnh
thổ Việt Nam. Dữ liệu được cập nhật thường xuyên.
Hỗ trợ nhúng vào website một cách dễ dàng
b. Khuyết điểm
Không có dữ liệu của các nước khác, chỉ thích hợp với ứng dụng có tầm
hoạt động ở Việt Nam.
Việc đăng kí sử dụng Vietbando có phần hơi khó khăn, khi bắt buộc
người ta phải có tên miền mới đăng kí được.
Chưa bản đồ hiển thị dưới dạng vệ tinh,chỉ mới là hình vẽ.
3.5.3 Giải Pháp và ứng dụng của Vietbando API
Hiện nay có các ứng dụng được phát triển trên dựa trên nền tảng Vietbando:
Tìm địa điểm: địa chỉ, giao lộ, địa danh, đường phố...
Hoạch định lộ trình: dựa trên chức năng tìm địa điểm mà Vietbando API
cung cấp. Ứng dụng cho phép cá nhân hay doanh nghiệp vận tải hoạch định ra lộ trình
tối ưu (ngắn nhất và dễ đi nhất.., hạn chế gặp lô cốt)
Quản lý vận tải, tài xế: dựa vào bản đồ mà Vietbando cung cấp cùng với
chức năng suy từ tọa độ chuẩn sang địa chỉ, lập trình viên có thể phát triên thêm chức
năng theo dõi xe vận tải, tài xế thông qua GPS. Từ GPS nhận được tọa độ và kết hợp
với bản đồ để thể hiện vị trí đang xe, tài xế đang ở đâu trên bản đồ. Từ đó xác định
được tài xế có bỏ khách, bỏ trạm, chạy sai tuyến hay không. Ứng dụng này cũng cho
phép tài xế liên lạc với tổng đài để được hỗ trợ.
3.5.4 Cách thức sử dụng Vietbando API
a. Cách đăng kí:
Tương tự như Yahoo Map API và Google Map API, để sử dụng được API của
Vietbando ứng dụng của bạn cần phải đăng kí một mã số ứng dụng với nhà cung cấp
Vietbando.
Để đăng kí mã số ứng dụng, người dùng truy cập vào địa chỉ sau:
http://www.vietbando.com/api/APIRegister.aspx và tiến hành đăng kí tài khoản cũng
như là website ứng dụng Vietbando.
3.6 Các nền tảng khác.
Địa điểm API: Địa điểm API(www.diadiem.com) cung cấp một sự kết
hợp độc nhất giữa kỹ thuật linh động và việc phát triển các công cụ, việc mở rộng thêm
dữ liệu bản đồ và sự tinh thông kỹ thuật công nghệ có thể giúp cho các doanh nghiệp
và các nhà phát triển hiểu rõ hơn giá trị từ những giải pháp bản đồ số trực tuyến của họ.
MapQuest API: MapQuest(www.mapquest.com) là một dịch vụ bản đồ
trực tuyến được cung cấp bởi công ty AOL(Amerian Online LLC). Người dùng
MapQuest có thể tìm kiếm địa điểm sân bay, khách sạn, nhà hàng, máy ATM. Ngoài ra
người dùng có thể sử dụng MapQuest trên các thiết bị di động. để sự dụng MapQuest
trên thiết bị di động người dùng cần cài đặt gói phần mềm trên di động. Để cho các nhà
phát triển có thể dùng MapQuest để phát triển ứng dụng của mình, MapQuest đã cung
cấp một hệ thống API với nhiều tài liệu hướng dẫn và các ví dụ minh họa giúp người
dùng dể dàng nhúng MapQuest vào trong hệ thống của mình.
Ngoài ra còn nhiều trang web cung cấp bản đồ và hệ thống API giúp các
nhà phát triển có thể thao tác trên hệ thống dữ liệu của họ như:
www.1650km.com(giống trang đia điểm ), www.ordnancesurvey.co.uk (website bản
đồ nước Anh)….
3.7 So sánh các nền tảng hổ trợ lập trình.
a. Chức năng
Views Google Navizon Bing Maps Yahoo
Maps
VietBanDo
Map View ● ● ● ● ●
Satellite View ● ● ●
Map + Satellite view ● ● ●
Overview Map Pane ● ● ●
Draggable Map ● ● ● ● ●
Shortcut Keys ● ●
Driving Drections 2 điểm 2 điểm 2 điểm Đa điểm 2 điểm
Reverse Route ● ● ●
Email Map ● ● ● ●
Send toPhone ● ● ●
Live Traffic ●
Printable ● ● ● ●
Add to favorites
b. Chi phí sử dụng:
API Giá thành
Google Miễn Phí
Yahoo Miễn phí
Bing Miễn phí
Vietbando Miễn phí
Navizone Có phí
Do đặc tính của luận văn, nên chúng tôi chỉ dùng các thư viên miễn phí. Navizone API
không phải là thư viện phù hợp với luận văn.
c. Dữ liệu:
Google Map API: Dữ liệu của Google Map đã có đầy đủ trên toàn thế
giới, Ở Việt Nam Google Map hiển thị khá chi tiết tên đường, vùng, miền các địa điểm
của các thành phố lớn.
Hình 3-32 Hình ảnh hiển thị của Google Map
Yahoo Map API: dữ liệu chi tiết đường phố hiện đã có ở Hoa kỳ,
Canada, hầu hết các nước Châu Âu. Đối với các nước còn lại trên thế giới thì có dữ
liệu về ranh giới, thành phố. Ở Việt Nam dữ liệu Yahoo Map chỉ hiển thị ở mức ranh
giới các đường và các thành phố chính.
Hình 3-33 Hình ảnh hiển thị của Yahoo Map
Vietbando API: Đây là bản đồ của Việt Nam xây dựng và chỉ hiển thị
bản đồ của Việt Nam còn các quốc gia khác chỉ hiển thị được ranh giới và tên nước.Dữ
liệu và hình ảnh của Việt bản đồ khá đẹp và đầy đủ hiển thị chi tiết tên đường, địa
điểm.
Hình 3-34 Hình ảnh hiển thị của VietBanDo
Bing Map API: Dữ liệu của Bing Map chủ yếu ở Hoa Kỳ và một vài
thành phố lớn trên thế giới. Ở Việt Nam Bing Map chỉ hiển thị các tên đường và các
thành phố chính.
Hình 3-35 Hình ảnh hiễn thị của Bing Map
Đến đây chúng ta loại bỏ 2 thư viên: Bing Map, Yahoo Map do dữ liệu ở Việt Nam ít.
d. Tốc độ & hiệu năng:
Phần này luận văn sẽ so sánh tốc độ và hiệu năng của các Map API trên. Đây cũng là
điều kiện quan trọng để quyết định việc chọn platform hỗ trợ cho luận văn này. Do
phạm vi của luận văn là xây dựng dịch vụ cho khu vực nước Việt Nam nên trong lần so
sánh này tôi chọn Internet tại nhà chúng tôi để làm thử nghiệm, các bản đồ đều cùng
trỏ đến một vị trí, vị trí mà chúng tôi chọn hiển thị lên bản đồ là vùng trung tâm thành
phố Hồ Chí Minh. Chọn kích thước hình ảnh trả về là 400px (lớn hơn màn hình điện
thoại di động hiên nay một chút). Chúng tôi có nhận xét sau khi kiểm thử:
API Thời gian
phản hồi
Kích thước Số lượng
file trả về
Chiếm bộ
nhớ
Google 5-6s 233 27 19,8
Yahoo 8-10s 207 24 13,43
Bing 8-10s 236 20 13,9
Vietbando 1-2s 91 25 13,5
Nguyên nhân Vietbando có thời gian đáp ứng nhanh nhất là do hệ thống API
Vietbando có server đặt trong nước do đó thời gian đáp ứng rất ngắn.
e. Kết luận
Do tính chất của luận văn xây dựng dịch vụ ở trên lãnh thổ Việt Nam do đó yêu cầu về
dữ liệu và tốc độ là yếu tố quyết định để chọn Platform hỗ trợ cho luận văn này. Nhóm
luận văn chúng tôi quyết định chọn hai platform Vietbando và Google API để hỗ trợ.
Tài liệu tham khảo:
http://msdn.microsoft.com/en-us/library/cc879136.aspx
Bing Maps Brochure
Navizon wifi gps and cell tower positioning
Google Maps API v2
http://en.wikipedia.org/wiki/Google_Earth
http://developer.yahoo.com/maps/
http://en.wikipedia.org/wiki/Yahoo_map
Chương 4 XÂY DỰNG HỆ THỐNG DỮ LIỆU CHO LBS
Nội dung của chương 4 trình bày về các khái niệm tổng quan về GIS, các
loại dữ liệu cho GIS. Nội dung chương 4 nhấn mạnh phân tích các loại dữ liệu cho
GIS, phần tích các mặt mạnh yếu của dữ liệu GIS. Qua chương 4 chúng ta có thể trả
lời được các câu hỏi “GIS là gì? ”, “Có những loại dữ liệu cho GIS? , “Nên dùng loại
dữ liệu nào cho GIS?”
4.1 Tìm hiểu khái niệm và các công nghệ xử lý dữ liệu cho GIS
4.1.1 Khái niệm GIS
GIS (Geographic Information System): Hệ thống thông tin địa lý là một công cụ cần
thiết cho đô thị, quy hoạch và quản lý tài nguyên.Khả năng của GIS là lưu trử, lấy lại,
phân tích, mô hình và bản đổ các khu vực rộng lớn với khối lượng dữ liệu không gian
lớn.Và có rất nhiều ứng dụng được xây dựng dựa trên GIS. Hệ thống thông tin địa lý
đang được sử dụng để lập kế hoạch sử dụng đất, quản lý các tiện ích, mô hình hệ sinh
thái, cảnh quan và đánh giá kế hoạch, quy hoạch giao thông vận tải và cơ sở hạ tầng,
phân tích thị trường, phân tích tác động trực quan, quản lý phương tiện, đánh giá
thuế,phân tích bất động sản và nhiều ứng dụng khác.
Tóm lại: Hệ thống thông tin địa lý là tập hợp các dữ liệu không gian và các công cụ cần
thiết để làm việc với các dữ liệu đó.
Hệ thống thông tin địa lý(GIS) đóng vai trò quan trong trong quá trình phát triển và
xây dựng hệ thống LBS. Vì GIS là một phần không thể thiếu để xây dựng hệ thống dữ
liệu cho một ứng dụng LBS.
4.1.2 Các thành phần của GIS
Một hệ thống GIS Có 5 thành phần chính: Phần cứng, phần mềm, dữ liệu, con người,
các phương pháp.
Hình 4-36 Các thành phần của GIS
Phần cứng: là hệ thống máy tính trên đó một hệ thống GIS hoạt động.
Ngày nay, phần mềm GIS có khả năng chạy trên nhiều dạng phần cứng, từ máy chủ,
đến các máy trạm…
Phần mềm GIS cung cấp các chức năng và các công cụ cần thiết để lưu
trữ, phân tích và hiển thị thông tin địa lý. Các thành phần chính trong phần mềm GIS
là:
Công cụ nhập và thao tác trên các thông tin địa lý.
Hệ quản trị cơ sở dữ liệu.
Công cụ hổ trợ hỏi đáp, phân tích và hiển thị địa lý.
Giao diện hiển thị người và máy để truy cập các công cụ dễ dàng.
Dữ liệu: có thể xem đây là thành phần quan trọng nhất trong một hệ
thống GIS. Các dữ liệu địa lý và dữ liệu thuộc tính liên quan có thể được người sử
dụng tự tập hợp hoặc mua từ các nhà cung cấp dữ liệu thương mại. Hệ thống GIS sẽ
kết hợp dữ liệu không gian với các nguồn dữ liệu khác. Thậm chí người dùng có thể sử
dụng các hệ quản trị cơ sở dữ liệu để lưu trử và quản lý dữ liệu.
Con người: Công nghệ GIS sẽ bị hạn chế nếu không có con người tham
gia quản lý hệ thống và phát triển những ứng dụng GIS trong thực tế. Người sử dụng
GIS có thể là các chuyên gia kỷ thuật, người thiết kế và duy trì hệ thống, hoặc những
người dùng GIS để giải quyết các vấn đề trong công việc.
Các phương pháp: Phương pháp tốt sẽ giúp cho hệ thống GIS đạt được
thành công.
4.1.3 Dữ liệu của GIS.
a. Dữ liệu vector
Dữ liệu Vector sử dụng các đường hay điểm, được xác định bằng các cặp tọa độ (X,Y)
của chúng trên bản đồ. Các đối tượng rời rạc( trong đó có các đối tượng đa giác) được
tạo bởi liên kết giữa các đoạn cung( đường) và các điểm.
Điểm: dùng cho tất cả các đối tượng không gian được biểu diễn
như là một cặp tọa độ (X,Y). Ngoài giá trị tọa độ (X,Y), điểm còn thể hiện kiểu điểm,
màu, hình dạng và dữ liệu thuộc tính đi kèm. Do đó trên bản đồ điểm được biểu diễn ở
dạng ký hiệu hoặc văn bản.
Hình 4-37 Dữ liệu điểm
Cung: dùng để biểu diễn tất cả các thực thể có dạng tuyến được
tạo từ hai hay nhiều cặp tọa độ (X,Y). Ví dụ đường dùng để biểu diễn hệ thống giao
thông, hệ thống ống thoát nước…đọ dài của cung được tính dựa trên các cặp tọa độ
(X,Y).
Hình 4-38 Dữ liệu đường
Vùng: là một đối tượng hình học 2 chiều vùng có thể là một đa
giác hoặc tập hợp nhiều đa giác. Một đa giác được cấu tạo từ các điểm và các cung nối
giữa các điểm đó. Do một vùng được cấu tạo từ các đa giác nên cấu trúc dữ liệu của
các đa giác bao gồm các điểm và cung phải được ghi nhận lại.
Hình 4-39 Dữ liệu vùng
b. Dữ liệu raster
Dữ liệu raster là một tập hợp ô vuông hoặc tập hợp điểm ảnh(pixel). Cấu trúc đơn giản
nhất gồm mảng các ô của bản đồ. Mỗi ô trên bản đồ biểu diễn bởi một tổ hợp tọa
độ(hàng,cột), và một giá trị biểu diễn kiểu hoặc thuộc tính của ô đó trên các bản đồ.
Trong cấu trúc này mỗi ô tương ứng với một điểm. Khái niệm đường lá một tập hợp
các ô gần nhau. Miền là một nhóm các ô liền nhau. Dạng dữ liệu này dễ lưu trử, thao
tác và thể hiện. Cấu trúc này cũng có nghĩa là những khu vực có kích thước nhỏ hơn 1
điểm cũng không thể thệ hiện được.
Hình 4-40 Dữ liệu raster
Mô hình dữ liệu Raster là mô hình dữ liệu GIS được sử dụng rộng rãi trong các bài
toán về môi trường, quản lý tài nguyên thiên nhiên.
Các nguồn dữ liệu xây dựng nên dữ liệu raster:
Dữ liệu có được từ ảnh quét.
Dữ liệu ảnh máy bay, ảnh viễn thám.
Dữ liệu được chuyển từ dữ liệu vector sang.
Dữ liệu được lưu trử ở dạng raster
Dữ liệu raster thường có kích thước rất lớn nếu không có cách lưu trử thích hợp. Do đó
chúng ta có thể sử dụng các phương pháp nén để giảm kích thước dữ liệu raster trước
khi đem lưu trữ chúng. Thông thường người ta dùng các phương pháp nén TIFF, RLE,
JPEG, GIF…
c. So sánh dữ liệu vector và dữ liệu raster
Dữ liệu vector
Ưu điểm:
Biểu diễn tốt các đối tượng địa lý.
Dữ liệu nhỏ, gọn.
Chính xác về hình học.
Khả năng sửa chữa, bổ sung, thay đổi các dữ liệu hình học cũng
như thuộc tính nhanh, tiện lợi.
Nhược điểm:
Cấu trúc dữ liệu phức tạp.
Chồng xếp bản đồ phức tạp.
Các bài toán mô phỏng thường khó giải vì mổi đơn vị không gian
có cấu trúc khác nhau.
Kỷ thuật xử lý phức tạp.
Dữ liệu raster
Ưu điểm
Cấu trúc rất đơn giản.
Dễ dàng sử dụng các phép toán chồng xếp và các phép toán xử lý
ảnh viễn thám.
Dễ dàng thực hiện các phép toán phân tích khác nhau.
Kỷ thuật sử lý đơn giản.
Nhược điểm
Dung lượng dữ liệu lớn.
Độ chính xác có thể giảm nếu sử dụng không hợp lý kích thước
các ô đơn vị.
Bản đồ hiển thị không đẹp.
Khối lượng tính toán để chuyển đổi tọa độ rất lớn.
Nhìn chung dữ liệu vector dùng để mô tả các đối tượng rời rạc,
trong khi mô hình dữ liệu raster được dùng để biểu diễn các đối tượng liên tục. Cả 2
mô hình dữ liệu này đều có những ưu điểm và nhược điểm cần xem xét khi xây dựng
dữ liệu cho hệ thống GIS.
4.1.4 Lưu trữ dữ liệu GIS
Trong ứng dụng dịch vụ hướng vị trí, thành phần dữ liệu là một trong những thành
phần quan trọng hàng đầu. Vì vậy chúng ta cần có một phương pháp lưu trữ hữu hiệu
để đáp ứng tốt cho ứng dụng.
a. Lưu trữ dưới dạng tập tin:
Lưu trữ dưới dạng tập tin chúng ta gặp các vấn đề sau cho ứng dụng LBS:
Có sự liên kết chặt chẽ giữa cấu trúc luận lý và cấu trúc vật lý của các tập
tin và chương trình ứng dụng LBS. Điều nay khiến cho việc phát triển cũng như mở
rộng ứng dụng khó khăn và tốn kém về thời gian & tiền bạc trong quá trình bảo trì
Có sự dư thừa dữ liệu lớn . Điều này tạo ra các vấn đề liên quan như: dữ
liệu thiếu nhất quán, không gian đĩa bị lãng phí.
Người sử dụng có ít khả năng khai thác trực tiếp lên dữ liệu.
Không cho phép truy cập đồng thời lên cùng một tập tin điều này làm
cho hiệu suất của hệ thông không cao.
b. Lưu trữ dùng hệ quản trị CSDL:
Cũng như các ứng dụng sử dụng Hệ quản trị CSDL để lưu trữ dữ liệu cho ứng dụng
của mình. Ứng dụng LBS sử dụng CSDL có một những ưu điểu sau:
Giảm sự trùng lắp thông tin xuống mức thấp nhất và do đó bảo đảm được
tính nhất quán và toàn vẹn dữ liệu.
Đảm bảo dữ liệu có thể truy xuất theo nhiều cách khác nhau: Khi truy
vấn, tìm kiếm địa chỉ, tùy theo mục đích mà người dùng sẽ truy vấn trên những trường
dữ liệu khác nhau. Có người truy xuất dữ liệu qua tọa độ, có người truy xuất qua vị trí
Khả năng chia sẽ cho nhiều người dùng: Cho phép nhiều người dùng
cùng truy xuất vào một thời điểm.
Đảm bảo tính chủ quyền của dữ liệu: Tính chủ quyền của dữ liệu được
thể hiện ở phương diện an toàn dữ liệu, khả năng biểu diễn các mối liên hệ ngữ nghĩa
của dữ liệu và tính chính xác của dữ liệu.
Tránh tranh chấp dữ liệu: Nhiều người được phép truy nhập cùng một lúc
vào tài nguyên dữ liệu của CSDL với những mục đích khác nhau
Đảm bảo an toàn dữ liệu khi gặp sự cố: Việc quản lý dữ liệu tập trung có
thể làm tăng khả năng mất mát hoặc sai lệch thông tin khi có sự cố như mất điện đột
xuất, hay một phần đĩa lưu trữ. Khi gặp sự cố, hệ quản trị có cơ chế để hồi phục,
backup dữ liệu
Hiện nay trên thị trường có nhiều phần mềm hệ quản trị cơ sơ dữ liệu : Oracle, SQL
Server, DB2… Mỗi hệ quản trị có một cách tổ chức quản lý dữ liệu riêng, tuy nhiên tất
cả cùng chung một mục đích là đáp ứng những yêu cầu trên
Ph n B- Xây d ng ng d ngầ ự ứ ụ
MobiLocate
Chương 5 XÁC ĐỊNH YÊU CẦU
Nội dung của chương 5
5.1 Đặc tả bài toán
Được sự phân công của bộ môn Công Nghệ Phần Mềm – Khoa Công nghệ thông tin,
nhóm em thực hiện nghiên cứu và viết ứng dụng về Location based service trên thiết bị
di động sử dụng hệ điều hành Windows Mobile 5+ , với sự hỗ trợ của các Platform
GoogleMap, VietBanDo. Ứng dụng Location based service nhằm hỗ trợ người dùng về
đường đi, địa điểm.
Khi ứng dụng được kích hoạt chạy, ứng dụng thể hiện lên màn hình bản đồ xung quanh
vị trí hiện tại của người dùng. Đồng thời trên bản đồ phải có chú thích được dữ liệu
trên con đường đó như là tên đường, địa điểm, quán ăn, trường học… Khi người dùng
click vào địa điểm nào đó trên bản đồ, ứng dụng sẽ hiển thị ra thông tin chi tiết : hình
ảnh, địa chỉ liên lạc, giới thiệu sơ lược về địa chỉ đó. Khi xem thông tin chi tiết về địa
điểm nào đó, đôi khi người dùng chọn đó là địa điểm yêu thích, hệ thống sẽ lưu lại để
nhanh chóng tìm kiếm lại vị trí này. Người dùng cũng có nhu cầu chỉnh sửa tên địa
điểm yêu thích, hoặc xóa địa điểm yêu thích. Với các nhu cầu xóa, sửa địa điểm yêu
thích người dùng luôn luôn phải đi qua màn hình quản lý các địa điểm yêu thích.
Việc tìm địa điểm một địa điểm là một trong những yêu cầu tối thiểu của ứng dụng.
Khi người dùng đồng ý tìm kiếm, ứng dụng sẽ hiển thị danh sách các kết quả tương
ứng với địa điểm mà người dùng. Trong danh sách đó người dùng sẽ chọn địa điểm mà
cho là đúng nhất, khi người dùng chọn địa điểm đó ứng dụng sẽ hiển thị bản đồ tương
với điểm đó và các vùng lân cận. Trong khi tìm kiếm người dùng cũng hay dùng các
chức năng tính độ dài đoạn đường từ vị trí hiện tại đến vị trí tìm kiếm, tìm đường đi
ngắn nhất từ vị trí hiện tại, lưu vị trí tìm kiếm vào danh mục yêu thích.
Tính độ dài của đoạn đường: Là chức năng cho phép người dùng xác định độ dài giữa
hai địa điểm mà người dùng đã xác định trước để đo. Hệ thống sẽ trả ra cho người
dùng độ dài giữa hai địa điểm đó.
Tìm con đường ngắn nhất: Chức năng thể hiện sự hướng dẫn của ứng dụng cho người
đi đường, để đi đến đích với con đường ngắn nhất. Ứng dụng sẽ vẽ lên bản đồ các con
đường cần phải đi qua để đi tới đích. Nếu người dùng đi sai đường, ngược đường với
hệ thống chỉ dẫn chương trình sẽ đưa ra cảnh báo lạc đường tới cho người dùng. Trong
quá trình thông báo lạc đường còn người cũng có thể nhấn nút là thông báo về việc đi
chắc chắn của mình để ứng dụng ngừng cảnh báo.
Tìm những địa điểm thuộc một lĩnh vực nào đó trong vùng lân cận: đây là một chức
năng hay của ứng dụng giúp cho người dùng xác định xung quanh mình có những địa
điểm nào mình quan tâm như là: gần đây có nhà hàng nào không? Có địa điểm rút tiền
nào không? Có quán tạp hóa nào không ? Chức năng này hướng đến người dùng du
lịch, những người không biết rõ về vùng họ đang đi tới. Đồng thời, nếu người dùng
chọn chế độ tự cảnh báo thì khi người dùng bước vào một khu vực có độ an toàn khá
thấp thì ứng dụng cảnh báo cho người dùng biết để phòng tránh. Ví dụ khu vực hay
xảy ra cướp giật, móc túi, hay gặp tai nạn…Người dùng có thể thêm địa điểm vừa tìm
kiếm vào vị trị yêu thích.
Để nâng cao tính ổn định của dịch vụ, đề phòng trường hợp Google Map, Vietbando
không thể truy cập, ứng dụng vẫn có khả năng tự đáp ứng dữ liệu trong một khu vực
nhỏ nào đó.
Việc lấy địa điểm hiện tại của người dùng được hỗ trợ qua thiết bị GPS. Trong trường
hợp ứng dụng được cài đặt trên điện thoại không hỗ trợ GPS, hoặc thiệt bị GPS gặp
vấn đề trong quá trình lấy dữ liệu thì ứng dụng tự động chuyển sang sử dụng công nghệ
CellID để lấy vị trí hiện tại của người dùng, mặc dù CellID không được chính xác.
5.2 Sơ đồ Use-Case.
Cap nhat dia diem yeu thich
Hien thi ket qua dinh vi
Hien thi ban do
He thong cung cap ban do
Hien thi ket qua tim kiem
Nguoi dung
Tim kiem dia diem gan dung
<<include>> Tim kiem theo loai dia diem
<<include>>
Tim kiem
Tim kiem duong di
<<include>>
Di chuyen ban do
Duyet ban do
Phong to - Thu nho ban do
<<include>>
<<include>>
<<include>>
Dinh vi bang GPS
<<include>>
Dinh vi
Dinh vi bang Cell ID
<<include>>
Hình 5-41Sơ đồ Use-Case.
5.2.1 Danh sách Actor.
STT Tên Actors Ý nghĩa/Ghi chú
1 Người dùng Là người dùng hệ thống. Người dùng sử dụng thiết bị
di động để thao tác trên bản đồ.
2 Hệ thống cung
cấp bản đồ
Cung cấp bản đồ cho hệ thống.
5.2.2 Danh sách Use-Case.
STT Tên Use-Case Ý nghĩa/Ghi chú
1 Duyệt bản đồ Người dùng duyệt kéo thả, phóng to thu nhỏ bản đồ.
2 Phóng to-thu
nhỏ bản đồ
Người dùng phóng to thu nhỏ bản đồ.
3 Di chuyển bản
đồ
Người dùng kéo thả bản đồ.
4 Tìm kiếm Tìm kiếm đường đi và địa địa.
5 Tìm Kiếm
đường di
Tìm kiếm danh sách đường di giữa 2 điểm.
Tìm kiếm đường đi ngắn nhất giữa 2 điểm.
6 Tìm kiếm theo
loại địa điểm
Tìm kiếm địa điểm theo loại địa điểm( ngân hàng,
ATM, bưu điện, chợ, Siêu thị, cây xăng….)
7 Tìm kiếm địa
điểm gần
đúng
Người dùng nhập vào một từ khóa. Hệ thống sẽ tìm
ra danh sách địa điểm gần đúng dựa và tên địa điểm.
8 Hiển thị kết
quả tìm kiếm
Hiển thị kết quả tìm kiếm trên bản đồ. Và di chuyển
bản đồ đến vị trí vừa tìm được.
Nếu là tìm kiếm đường đi, hệ thống sẽ vẽ đường đi
từ điểm bắt đầu đến điểm kết thúc và hiện danh sách
đường đi cần đi qua.
9 Hiển thị bản
đồ
Hiển thị bản đồ theo yêu cầu của hệ thống.
10 Định vị Xác định vị trí của người dùng thiết bị di động.
11 Định vị bằng
Cell ID
Dùng kỉ thuật định vị Cell ID để xác định vị trí của
người dùng.
12 Định vị bằng
GPS
Dùng kỉ thuật định vị GPS để xác định vị trí của
người dùng.
13 Hiển thị kết
quả định vị
Hiển thị kết quả định vị lên bản đồ. Và di chuyển bản
đồ đến vị trí vừa tìm được.
14 Cập nhật địa
điểm yêu
thích.
Khi người dùng tìm kiếm được các địa điểm yêu
thích, người dùng có thể cập nhật( thêm, xóa ,sửa)
địa điểm vào danh sách địa điểm yêu thích.
5.2.3 Đặt tả Use-Case
Đặt tả Use-Case “duyệt bản đồ”.
a. Tóm tắt.
Use-Case này cho phép người dùng duyệt kéo thả, phóng to và thu nhỏ bản đồ.
b. Dòng sự kiện.
Dòng sự kiện chính.
Use-Case này bắt đầu khi người dùng mở ứng dụng. Và cho phép người dùng thao tác
lên bản đồ.
Người dùng click chuột lên bản đồ và tiến hành kéo thả để duy chuyển bản đồ.
Người dùng chọn “+” để phóng to bản đồ và “-“ để thu nhỏ bản đồ.
Các dòng sự kiện khác.
Không có.
c. Các yêu cầu đặc biệt.
Không có.
d. Trạng thái hệ thống khi bắt đầu thực hiện Use-Case.
Ứng dụng đã được mở và đang hiển thị ở màn hình chính (Màn hình hiển thị bản đồ).
e. Trạng thái hệ thống sau khi thực hiện Use-Case.
Nếu Use-Case thực hiện thành công . Hệ thống sẽ hiện thị bản đồ theo ý của người
dùng.
f. Điểm mở rộng.
Không có.
Đặt tả Use-Case “Phóng to-thu nhỏ bản đồ”.
a. Tóm tắt.
Use-Case này cho phép người dùng phóng to và thu nhỏ bản đồ.
b. Dòng sự kiện.
Dòng sự kiện chính.
Use-Case này bắt đầu khi người dùng muốn phóng to hoặc thu nhỏ bản đồ hiển thị.
- Người dùng chọn vào “+” để tiến hành phóng to hoặc “-“ để thu nhỏ bản đồ.
- Hệ thống xác định là phóng to hoặc thu nhỏ bản đồ theo ý của người dùng.
Các dòng sự kiện khác.
Không có.
c. Các yêu cầu đặc biệt.
Không có.
d. Trạng thái hệ thống khi bắt đầu thực hiện Use-Case.
Ứng dụng đang được mở và đang hiển thị màn hình chính.
e. Trạng thái hệ thống sau khi thực hiện Use-Case.
Nếu Use-Case thực hiện thành công thì hệ thống sẽ hiển thị bản đồ ở dạng phóng to
hoặc thu nhỏ. Ngược lại sẽ không thay đổi gì cả.
f. Điểm mở rộng.
Không có.
Đặt tả Use-Case “di chuyển bản đồ”.
a. Tóm tắt.
Use-Case này cho phép người dùng kéo thả bản đồ để hiển thị các vùng không gian
khác của bản đồ.
b. Dòng sự kiện.
Dòng sự kiện chính.
Use-Case này bắt đầu khi người dùng muốn kéo thả bản đồ để hiển thị các vùng không
gian khác của bản đồ.
- Người dùng dùng chuột để kéo thả trực tiếp trên bản đồ.
- Hệ thống xác định vị trí click chuột và nhã chuột sau đó sẽ hiển thị bản đồ theo
ý của người dùng.
Các dòng sự kiện khác.
Không có.
c. Các yêu cầu đặc biệt.
Không có.
d. Trạng thái hệ thống khi bắt đầu thực hiện Use-Case.
Ứng dụng đã được mở và đang hiển thị ở màn hình chính.
e. Trạng thái hệ thống sau khi thực hiện Use-Case.
Nếu Use-Case thực hiện thành công thì sẽ hiện thị bản đồ theo ý của người dùng.
Ngược lại sẽ không thay đổi gì cả.
f. Điểm mở rộng.
Không có.
Đặt tả Use-Case “tìm kiếm”.
a. Tóm tắt.
Use-Case này cho phép người dùng tìm kiếm địa điểm, đường đi và hiển thị kết quả lên
trên bản đồ bằng biểu tượng địa điểm hoặc đường đi.
b. Dòng sự kiện.
Dòng sự kiện chính.
Use-Case bắt đầu khi người dùng muốn thực hiện tìm kiếm.
- Người dùng chọn vào menu “Tìm kiếm” trong danh sách menu của ứng
dụng.
- Trong menu “tìm kiếm” chúng ta có thể chọn các menu cho các chức
năng khác nhau:
Tìm kiếm danh sách đường đi.
Tìm kiếm đường di ngắn nhất.
Tìm kiếm theo loại địa điểm.
Tìm kiếm theo địa điểm gần đúng.
- Sau khi thực hiện tìm kiếm hệ thống sẽ hiển thị kết quả tìm kiếm lên bản
đồ.
Các dòng sự kiện khác.
Không có.
c. Các yêu cầu đặc biệt.
Không có.
d. Trạng thái hệ thống khi bắt đầu thực hiện Use-Case.
Ứng dụng đã được mở và đang ở màn hình chính.
e. Trạng thái hệ thống sau khi thực hiện Use-Case.
Nếu Use-Case thực hiện thành công. Hệ thống sẽ hiển thị kết quả lên bản đồ của ứng
dụng bằng các biểu tượng nếu là địa điểm, đường đi được tô màu nếu là đường di.
f. Điểm mở rộng.
Không có.
Đặt tả Use-Case “tìm kiếm đường đi”.
a. Tóm tắt.
Use-Case này cho phép người dùng tìm đường đi ngắn nhất hoặc tìm danh sách đường
đi. Và hiển thị kết quả lên bản đồ.
b. Dòng sự kiện.
Dòng sự kiện chính.
Use-Case bắt đầu khi người dùng muốn thực hiện tìm kiếm đường đi.
- Người dùng chọn menu “Tìm kiếm đường đi” trong danh sách menu của ứng
dụng”
- Trong menu “tìm kiếm đường đi”, người dùng có thể chọn tìm kiếm đường di
ngắn nhất hoặc tìm danh sách đường đi.
- Người dùng dùng chuột để chọn điểm đầu( nằm trên đường đi đầu tiên) và điểm
cuối(nằm trên đường đi kết thúc).
- Hệ thống sẽ xử lý và trả về kết quả cho người dùng là đường đi ngắn nhất hoặc
danh sách đường đi dựa vào điểm đầu và điểm cuối.
- Người dùng chọn một đường đi trong danh sách đường đi(nếu chọn menu “tìm
kiếm danh sách đường đi”.
- Hệ thống sẽ hiện thị kết quả là đường đi( được tô màu khác) từ điểm đầu đến
điểm cuối và danh sách các đường mà nó đi qua.
Các dòng sự kiện khác.
Không có.
c. Các yêu cầu đặc biệt.
Không có.
d. Trạng thái hệ thống khi bắt đầu thực hiện Use-Case.
Ứng dụng đang được mở và đang hiển thị màn hình chính.
e. Trạng thái hệ thống sau khi thực hiện Use-Case.
Nếu Use-Case thực hiện thành công sẽ trả về kết quả cho người sử dụng. Ngược lại hệ
thống sẽ thông báo là “không có đường đi!”.
f. Điểm mở rộng.
Không có.
Đặt tả Use-Case “tìm kiếm theo loại địa điểm”.
a. Tóm tắt.
Use-Case này cho phép người dùng tìm kiếm theo loại địa điểm: nhà hàng, ATM,bưu
điện,chợ…. Và hiển thị kết quả tìm kiếm lên trên bản đồ.
b. Dòng sự kiện.
Dòng sự kiện chính.
Use-Case bắt đầu khi người đúng muốn thực hiện tìm kiếm theo loại địa điểm.
- Người dùng chọn menu “Tìm kiểm theo loại địa điểm” trong danh sách menu
của ứng dụng.
- Hệ thống sẽ hiện thị danh sách loại địa điểm: nhà hàng, ATM, bưu điện…Người
dùng chọn một loại địa điểm.
- Hệ thống sẽ hiển thị danh sách các địa điểm liên quan đến loại địa điểm
đó….Người dùng sẽ chọn địa điểm mà mình mong muốn.
- Hệ thống sẽ hiển thị kết quả tỉm kiếm lên trên bản đồ bằng một biểu tượng
tương ứng với loại địa điểm.
Các dòng sự kiện khác.
Không có.
c. Các yêu cầu đặc biệt.
Không có.
d. Trạng thái hệ thống khi bắt đầu thực hiện Use-Case.
Hệ thống đã được mở và đang hiển thị màn hình chính.
e. Trạng thái hệ thống sau khi thực hiện Use-Case.
Nếu Use-Case thực hiện thành công hệ thống sẽ hiển thị địa điểm mà người dùng tìm
kiếm và di chuyển bản đồ đến vị trí đó. Ngược lại sẽ không thay đổi gì cả.
f. Điểm mở rộng.
Không có.
Đặt tả Use-Case “Tìm kiếm địa điểm gần đúng”.
a. Tóm tắt.
Use-Case này cho phép ngươi dùng tìm kiếm một địa điểm theo tên.
b. Dòng sự kiện.
Dòng sự kiện chính.
Use-Case bắt đầu khi người dùng muốn tìm kiếm một địa điểm.
- Người dùng chọn menu “Tìm kiếm địa điểm gần đúng” trong danh sách menu
của hệ thống.
- Hệ thống sẽ hiện thị một TextBox để người dùng nhập vào tên của địa điểm.
- Hệ thống sẽ tìm ra danh sách các địa điểm gần đúng với tên người dùng nhập
vào.
- Người dùng chọn một địa điểm trong danh sách.
- Hệ thống sẽ hiển thị địa điểm đó lên bản đồ.
Các dòng sự kiện khác.
Không có.
c. Các yêu cầu đặc biệt.
Không có.
d. Trạng thái hệ thống khi bắt đầu thực hiện Use-Case.
Hệ thống đang được mở và ứng dụng đang hiển thị màn hình chính.
e. Trạng thái hệ thống sau khi thực hiện Use-Case.
Nếu Use-Case thực hiện thanh công, hệ thống sẽ hiễn thị kết quả lên bản đồ ngược lại
sẽ không thây đổi gì cả.
f. Điểm mở rộng.
Không có.
Đặt tả Use-Case “Hiển thị kết quả tìm kiếm”.
a. Tóm tắt.
Use-Case này cho phép hiển thị kết quả tìm kiếm lên trên bản đồ.
b. Dòng sự kiện.
Dòng sự kiện chính.
Use-Case bắt đầu khi hệ thống muốn hiển thị kết quả tìm kiếm lên trên bản đồ.
Các dòng sự kiện khác.
Không có.
c. Các yêu cầu đặc biệt.
Không có.
d. Trạng thái hệ thống khi bắt đầu thực hiện Use-Case.
Hệ thống đang thực hiện tìm kiếm và trả ra kết quả để hiện thị lên bản đồ.
e. Trạng thái hệ thống sau khi thực hiện Use-Case.
Nếu Use-Case thực hiện thành công, kết quả tìm kiếm sẽ được hiển thị lên bản đồ,
ngược lại không thay đổi gì cả.
f. Điểm mở rộng.
Không có.
Đặt tả Use-Case “Hiển thị bản đồ”.
a. Tóm tắt.
Use-Case này cho phép hệ thống hiển thị bản đồ.
b. Dòng sự kiện.
Dòng sự kiện chính.
Use-Case này thực hiện khi hệ thống muốn hiển thị bản đồ.
Các dòng sự kiện khác.
Không có.
c. Các yêu cầu đặc biệt.
Không có.
d. Trạng thái hệ thống khi bắt đầu thực hiện Use-Case.
Hệ thống đang được mở hoặc cần hiển thị lại bản đồ.
e. Trạng thái hệ thống sau khi thực hiện Use-Case.
Nếu Use-Case thực hiện thành công hệ thống sẽ hiển thị bản đồ lên cho người dùng,
ngược lại hệ thống sẽ thông báo “Không thể tải bản đồ”.
f. Điểm mở rộng.
Không có.
Đặt tả Use-Case “Định vị”.
a. Tóm tắt.
Use-Case này cho phép người dùng xác định vị trí của mình trên bản đồ của hệ thống.
b. Dòng sự kiện.
Dòng sự kiện chính.
Use-Case được thực hiện khi người dùng muốn thực hiện định vị để xác định vị trí.
- Người dùng chọn menu “Đinh vị “ trong danh sách menu của hệ thống.
- Hệ thống sẽ tiến hành định vị dựa vào các công nghệ định vị( Cell ID,
GPS).
- Hệ thống hiển thị kết quả định vị lên bản đồ với một biểu tượng tương
ứng và di chuyển bản đồ về vị trí định vị.
Các dòng sự kiện khác.
Không có.
c. Các yêu cầu đặc biệt.
Không có.
d. Trạng thái hệ thống khi bắt đầu thực hiện Use-Case.
Hệ thống đang được mở và đang hiển thị màn hình chính.
e. Trạng thái hệ thống sau khi thực hiện Use-Case.
Nếu Use-Case thực hiện thành công, hệ thống sẽ hiển thị kết quả lên trên bản đồ,
ngược lại sẽ không thay đổi gì cả.
f. Điểm mở rộng.
Không có.
Đặt tả Use-Case “Định vị bằng Cell ID”.
a. Tóm tắt.
Use-Case này cho phép người dùng sử dụng công nghệ Cell ID để xác định vị trí cùa
mình và hiển thị kết quả lên bản đồ.
b. Dòng sự kiện.
Dòng sự kiện chính.
Use-Case bắt đầu khi người dùng muốn định vị bằng công nghệ Cell ID.
- Người dùng chọn menu “Định vị bằng Cell ID” trong danh sách menu
menu của hệ thống.
- Hệ thống sẽ tiến hành định vị dựa vào các trạm sóng phát tín hiệu di
động. Và nhận về các giá trị định vị tương ứng.
- Hệ thống sẽ hiển thị kết quả định vị lên trên bản đồ bằng một biểu tượng
tương ứng. Và di chuyển bản đồ đến vị trí định vị.
Các dòng sự kiện khác.
Không có.
c. Các yêu cầu đặc biệt.
Không có.
d. Trạng thái hệ thống khi bắt đầu thực hiện Use-Case.
Hệ thống đang được mở và đang hiển thị màn hình chính.
e. Trạng thái hệ thống sau khi thực hiện Use-Case.
Nếu Use-Case thực hiện thành công. Hê thống sẽ hiển thị kết quả định vị lên bản đồ.
Ngược lại hệ thống sẽ không thay đổi gì cả.
Điểm mở rộng.
Không có.
Đặt tả Use-Case “Định vị bằng GPS”.
a. Tóm tắt.Use-Case này cho phép người dùng sử dụng công nghệ định vị toàn cầu GPS để xác
định vị trí của mình trên bản đồ của hệ thống.
a. Dòng sự kiện.
Dòng sự kiện chính.
Use-Case bắt đầu khi người dùng muốn dùng công nghệ định vị GPS để xác định vị trí.
- Người dùng chọn menu “Định vị bẳng GPS” trong danh sách menu của
hệ thống.
- Hệ thống sẽ bật tính năng định vị GPS của thiết bị di động.
- Hệ thống nhân các giá trị trả vế từ GPS.
- Hiển thị kết quả định vị lên trên bản đồ bằng một biểu tượng tương ứng
và di chuyển bản đồ đến vị trí tương ứng.
Các dòng sự kiện khác.
Không có.
b. Các yêu cầu đặc biệt.Không có.
c. Trạng thái hệ thống khi bắt đầu thực hiện Use-Case.Hệ thống đang được mở và hiển thị ở màn hình chính.
d. Trạng thái hệ thống sau khi thực hiện Use-Case.Nếu Use-Case thực hiện thành công, hệ thống sẽ hiện thị kết quả định vị lên màn hình
chính. Ngược lại hệ thống sẽ không thay đổi gì cả.
e. Điểm mở rộng.Không có.
Đặt tả Use-Case “Hiển thị kết quả định vị”.
a. Tóm tắt.
Use-Case này cho phép hệ thống hiển thị kết quả định vị lên trên bản đồ.
b. Dòng sự kiện.
Dòng sự kiện chính.
Use-Case bắt đầu khi hệ thống hiển thị kết quả định vị lên bản đồ.
Các dòng sự kiện khác.
Không có.
c. Các yêu cầu đặc biệt.
Không có.
d. Trạng thái hệ thống khi bắt đầu thực hiện Use-Case.
Use-Case bắt đầu khi hệ thông đã thực hiện định vị (GPS, Cell ID). Và muốn hiển thị
kết quả lên bản đồ.
e. Trạng thái hệ thống sau khi thực hiện Use-Case.
Nếu Use-Case thực hiện thành công hệ thống sẽ trả về bản đồ cùng với kết quả định
vị. Ngược lại hệ thống sẽ không thay đổi gì cả.
f. Điểm mở rộng.
Không có.
Đặt tả Use-Case “Cập nhật địa điểm yêu thích”.
a. Tóm tắt.
Use-Case này cho phép người dùng thêm, xóa các địa điểm yêu thích.
b. Dòng sự kiện.
Dòng sự kiện chính.
Dòng sự kiện thêm: được thực hiện khi người dùng muốn thêm một địa điểm yêu
thích và danh sách địa điểm yêu thích của mình.
- Người dùng chọn địa điểm cần thêm trên màn hình hiển thị.
- Hệ thống tiến hành cập nhật địa điểm đó và danh sách địa điểm yêu thích của
người dùng.
Dòng sự kiện Xóa: Dòng sự kiện này cho phép người dùng xóa địa điểm yêu thích
trong danh sách địa điểm yêu thích của người dùng.
- Người dùng chọn menu “Địa điểm yêu thích” trong danh sách menu của hệ
thống.
- Người dùng chọn một địa điểm và chọn xóa địa điểm.
- Hê thống sẽ tiến hành cập nhật lại danh sách địa điểm yêu thích của người dùng.
Các dòng sự kiện khác.
Không có.
c. Các yêu cầu đặc biệt.
Không có.
d. Trạng thái hệ thống khi bắt đầu thực hiện Use-Case.
Hệ thống đã được mở và đang ở màn hình chính.
e. Trạng thái hệ thống sau khi thực hiện Use-Case.
Nếu Use-case thực hiện thành công hệ thống sẽ cập nhật danh sách địa điểm yêu thích
của người dùng, ngược lại hệ thống sẽ thông báo lổi “ không cập nhật được địa điểm
yêu thích”.
f. Điểm mở rộng.
Không có.
5.2.4 Mô tả dữ liệu cho hệ thống LBS
a. Lược đồ CSDL
b. Mô tả chi tiết
Bảng dữ liệu Place
Bảng dữ liệu Place nhằm mô tả chi tiết về một địa điểm nào đó. Dựa vào đây ta có thể
xác định được thông tin của một địa điểm trên bản đồ.
STT Thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
1 Id Int Khóa chính Là mã số để phân biệt với
các địa điểm khác
2 Type Int Khóa ngoại Dùng để mô tả loại địa điểm
3 FullName Nvarchar(255) Mô tả chi tiết thông tin về địa
điểm.
4 Address Nvarchar(255) Mô tả địa chỉ của địa điểm
5 Contact Nvarchar(MAX) Thông tin để bổ sung cho địa
điểm. Field này có ý nghĩa về
mặt thông tin, không có ý
nghĩa về mặt tìm kiếm
6 xLocation Float Mô tả vĩ độ của địa điểm.
Field có ý nghĩa về mặt tìm
kiếm, giúp chúng ta xác định
được địa điểm khi biết được
tọa độ
7 yLocation Float Mô tả tung độ của địa điểm.
Field có ý nghĩa về mặt tìm
kiếm, giúp chúng ta xác định
được địa điểm khi biết được
tọa độ
8 Placeinfo int Thông tin bổ sung thêm cho
địa điểm. Ví dụ: địa chỉ liên
lạc, hình ảnh, giới thiệu…
9 Keyword Nvarchar(255) Field lưu giữ những từ khóa
của địa điểm đó, có ý nghĩa
về mặt tìm kiếm. Dựa vào
keyword này để xác định vị
trí của một địa điểm
Để minh họa rõ ý nghĩa của bảng dữ liệu Place chúng ta xét hai vấn đề như sau:
- Làm thế nào để xác định thông tin của địa điểm có tọa độ (21.01388 105.8133):
Khi biết được tọa độ của vị trí tức là ta có dữ liệu của hai field xLocation, yLocation.
Dựa vào đây ta truy vấn ra các thông tin cần thiết của một địa chỉ.
- Làm thế nào xác định được thông tin của địa điểm khi biết tên địa điểm là ATM:
Khi biết tên địa điêm, ta dựa vào field keyword để thực hiện tìm kiếm. Dựa vào thông
tin vị trí hiện tại của người dùng, kết hợp với dữ liệu từ hai field xLocation, yLocation
từ đó ta truy vấn ra tập tất cả những địa diểm có tên là ATM
Bảng dữ liệu PlaceInfo
Bảng dữ liệu này mô tả thông tin thêm cho một địa điểm nào đó trong bảng dữ liệu
Place. Các dữ liệu bổ sung này có ích đối với người xem bản đồ, cần biết về hình ảnh,
địa chỉ liên lạc.
Bảng dữ liệu PlaceType
Bảng dữ liệu này mô tả các loại địa điểm của một điểm như là: ATM, bưu điện, nhà
hàng. Để dựa vào đây và kết hợp với bảng dữ liệu Place trên ta tìm kiếm các loại địa
điểm xung quanh vị trí đang đứng
STT Thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
1 Id Int Khóa chính Mã số của một loại địa điêm
2 Description Nvarchar(MAX) Mô tả tên loại địa điểm
3 Picture Nvarchar(255) Đường dẫn hình ảnh đại diện
Để minh họa rõ hơn về ý nghĩa của bảng dữ liệu PlaceType và cũng để giải thích tại
sao lại xây dựng bảng dữ liệu này, chúng ta xét ví dụ sau:
Tìm kiếm những nhà hàng có xung quanh tôi? : Như vậy chúng ta có thông tin là
loại địa điểm là Nhà Hàng. Dựa vào field Description trên bảng dữ liệu PlaceType
chúng ta suy ra được mã số của loại địa điểm này. Dựa vào mã số của loại địa điểm
cùng kết hợp với field Type trong bảng dữ liệu Place trên, chúng ta lấy ra được những
địa điểm thuộc loại “Nhà Hàng”. Sau đó kết hợp giữa vị trí của người dùng và vị trí
của địa điểm ta suy ra đó có phải là địa điểm xung quanh hay không. Từ đó xuất ra tập
hợp các địa điểm có kiểu là Nhà Hàng xung quanh vị trí người dùng.
Bảng dữ liệu Street
STT Thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
1 Id Int Khóa chính
2 FullName Nvarchar(255) Tên đường
3 Strartnode Int Khóa ngoại Tọa độ điểm bắt đầu con
đường
4 Endnode Int Khóa ngoại Tọa độ cuối con đường
5 Nodecount Int Số lượng các đoạn đường
trong con đường
6 Tags Nvarchar(255) Thông tin thêm, có ý nhĩa
trong tìm kiếm
7 Twoway Int Để cho biết đây có phải là con
đường hai chiều hay không?
8 Info Nvarchar(255) Thông tin đường
9 State Int Tình trạng đường
10 Keyword Nvarchar(255) Là từ khóa để phục vụ cho tìm
kiếm
Bảng dữ liệu Street cung cấp cho chúng ta dữ liệu các con đường, nhằm phục vụ
cho quá trình tìm kiếm tên đường, địa điểm. Bảng này kết hợp với bảng dữ liệu
NodeInfo sẽ cho chúng ta tọa độ chính xác của con đường.
Ví dụ: để tìm con đường Nguyen Trai, Đơn giản chi là so sánh với field Keyword
nếu keyword có chứa từ Nguyễn Trãi thì lấy thông tin về con đường đó ra.
Bảng dữ liệu NodeInfo
STT Thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
1 Id Int Khóa chính
2 xLocation Float Tọa độ longitude.
3 yLocation Float Tọa độ latitude.
Bảng này mô tả tọa độ của các node trên con đường. Bảng này có ý nghĩa khi cùng
kết hợp với bảng dữ liệu StreetSegment
Bảng dữ liệu StreetSegment
Đây là bảng dữ liệu quan trọng mô tả từng đoạn đường trong con đường, nhằm mục
đích cho tìm kiếm đường đi ngắn nhất giữa hai điểm cho trước.
STT Thuộc tính Kiểu dữ liệu Ràng buộc Mô tả
1 StartPoint Int Khóa ngoại Là điểm bắt đầu của đoạn
đường
2 IDStreet Int Khóa ngoại Con đường mà chứa đoạn
đường này
3 Order Int Số thứ tự của đoạn đường
4 EndPoint Int Điểm kết thúc của đoạn
đường
Bảng dữ liệu sẽ kết hợp với bảng dữ liệu NodeInfo để lấy tọa độ chính xác của
điểm đầu điểm cuối.
Để minh họa ý nghĩ của ba bảng dữ liệu NodeInfo, StreetSegment, Street. Chúng ta
xét một ví dụ tìm đường đi ngắn nhất như sau:
Tìm đường ngắn nhất từ một điểm đến một điểm? Khi chúng ta có được tọa độ của
một điểm thì chúng ta dễ dàng suy ra được StartPoint hoặc EndPoint trên đoạn đường
dựa vào sự liên hệ giữa NodeInfo và StreetSegment. Sau khi tìm được StartPoint hoặc
EndPoint chúng ta tìm các StartPoint, EndPoint khác có liên hệ với StartPoint và
EndPoint vừa tìm. Sau đó sử dụng thuật toán để chọn ra Segment cần đi tiếp theo. Sau
đó kết hợp các segment vừa tìm được lại thành đường đi ngắn nhất.
Chương 6 KIẾN TRÚC PHẦN MỀM CHO LBS
Nội dung của chương 6 trình bày về kiến trúc cho hệ thống LBS. Chương này
nêu rõ khái niệm, phân tích các điểm mạnh, yếu của các kiến trúc trước đây. Để từ đó
đề nghị nên một kiến trúc mới thích hợp hơn với hệ thống LBS hiện tại, kiến trúc SOA.
Chương 5 cũng nêu rõ lý do cần thiết của kiến trúc SOA & Webservice vào hệ thống
ứng dụng LBS
Hình 6-42 Mô tả tổng quan luồng dữ liệu của các dịch vụ LBS.
Với các ứng dụng LBS thì thường được chia làm 2 phần:
Client: Là nơi hiển thị thông tin kết quả trả về từ phía server. Nơi đây
không chịu trách nhiệm xử lý. Vì xử lý tại client chậm do cấu hình về phần cứng của
thiết bị di động có phần hạn chế. Phía client thường là các thiết bị di động.
Server: Đây là nơi tập trung xử lý các yêu cầu từ phía thiết bị di động, xử
lý về dữ liệu, tính toán, hình ảnh. Server xử lý cho LBS thường là những máy tính, hệ
thống máy tính.
Vậy vấn đề đặt ra ở đây là tìm kiếm một kiến trúc phần mềm hỗ trợ xử lý phân tán,
không phụ thuộc vào nền tảng, thiết bị ứng dụng. Tiết kiệm tối đa về chi phí và thời
gian. Sử dụng lại được các nền tảng hỗ trợ lập trình như đã nêu ở chương trước. Và
quan trọng nhất là dễ dàng mở rộng dịch vụ cho LBS.
Ba kiến trúc phân tán phổ biến nhất hiện này là CORBA, DCOM và EJB. Các kiến
trúc này là sự mở rộng của các hệ thống hướng đối tượng bằng cách cho phép phân tán
các đối tượng trên mạng. Đối tượng đó có thể có không gian địa chỉ bên ngoài ứng
dụng, hoăc ở một máy khác với máy chứa ứng dụng trong khi vẫn được tham chiếu sử
dụng như một phần của ứng dụng.
CORBA – Common Object Request Broker Architecture: Ưu điểm của
CORBA là các lập trình viên có thể chọn bất kỳ ngôn ngữ, nền tảng phần cứng, giao
thức mạng và công nghệ để phát triển mà vẫn thoả các tính chất của CORBA. Tuy
nhiên CORBA số một nhược điểm là nó là ngôn ngữ lập trình cấp thấp, rất phức tạp,
khó học và cần một đội ngũ phát triển có kinh nghiệm. Ngoài ra các đối tượng CORBA
cũng khó có thể tái sử dụng. Do đó đây không phải là mô hình thích hợp cho ứng dụng
LBS
EJB - Enterprise Java Bean: EJB là một kiến trúc tốt cho việc tích hợp
các hệ thống vì nó độc lập nền tảng nhưng nó cũng gặp vấn đề là nó không phải là một
chuẩn mở, khả năng giao tiếp với các chuẩn khác vẫn còn hạn chế. Không thích hợp
với các ứng dụng yêu cầu mở rộng thường xuyên, liên lạc giữa các thiết bị khác nhau.
DCOM – Distributed Component Object Model:. DCOM mang đến
nhiều ưu điểm như tính ổn định, không phụ thuộc vị trí địa lý, quản lý kết nối hiệu quả
và dễ dàng mở rộng, là một lựa chọn tốt cho các doanh nghiệp sử dụng công nghệ của
Windows để chạy các ứng dụng có yêucầu cao về sự chính xác và ổn định. Tuy nhiên,
các công nghệ của Microsoft có một nhược điểm lớn là chúng bị giới hạn trên nền tảng
Windows. Không thích hợp với ứng LBS vì phần client là môi trường di động không
tương thích với hệ điều hành máy tính Windows.
Các kiến trúc trên đều hướng đến việc xây dựng một hệ thống “hướng dịch vụ” tuy
nhiên chúng vẫn còn gặp phải một số vấn đề:
Đầu tiên là chúng tighly coupled, nghĩa là kiến trúc triển khai cài
đặt bên phía nhà cung cấp dịch vụ và phía sử dụng dịch vụ phải giống nhau. Điều này
đồng nghĩa với khó khăn mỗi khi có sự thay đổi từ một trong 2 phía bởi vì mỗi thay đổi
cần được đánh giá, lên kế hoạch và sửa chữa ở cả 2 phía.
Tiếp đến những chuẩn trên đa phần là chuẩn đóng, chúng hầu như
không thể kết hợp, hoạt động với chuẩn khác. Ví dụ như bắt đối tượng Java trao đổi dữ
liệu trực tiếp với một đối tượng DCOM là không thể. Cuối cùng các đối tượng của các
mô hình trên là fine grained, nghĩa là lượng thông tin giữa trong mỗi lần thực hiện giao
dịch là ít, và được thực hiện nhiều lần dẫn đến chiếm dụng băng thông sử dụng và tăng
thời lượng đáp trả dữ liệu.
Chính vì vậy chúng ta cần một cách tiếp cận mới để giải quyết vấn
đề môi trường không đồng nhất và phải đáp ứng nhu cầu thay đổi thường xuyên do sự
tác động của người dùng khi sử dụng dịch vụ LBS. May mắn thay, vẫn có một cách
tiếp cận giải quyết khá toàn diện mọi khó khăn nêu trên và nó đã được triển khai trong
thực tế. Cách tiếp cận đó gọi là “kiến trúc hướng dịch vụ” Service-oriented
Architecture (SOA)
6.1 Kiến trúc hướng dịch vụ (SOA) là gì?
6.1.1 Giới thiệu
1. Định nghĩa
Kiến trúc hướng dịch vụ (Service-oriented architecture) là một hướng tiếp cận với việc
thiết kế và tích hợp các phần mềm, chức năng, hệ thống theo dạng module, trong đó
mỗi module đóng vai trò là một “dịch vụ có tính loose coupling”, và có khả năng truy
cập thông qua môi trường mạng. Hiểu một cách đơn giản thì một hệ thống SOA là một
tập hợp các dịch vụ được chuẩn hoá trên mạng trao đổi với nhau trong ngữ cảnh một
tiến trình nghiệp vụ
Trong SOA có ba đối tượng chính:
Hình 6-43 Sơ đồ cộng tác trong mô hình SOA
Nhà cung cấp dịch vụ (service provider) cần cung cấp thông tin về dịch vụ của mình
cho một dịch vụ lưu trữ thông tin dịch vụ (service registry). Người sử dụng (service
consumer) thông qua service registry để tìm kiếm thông tin mô tả về dịch vụ cần tìm
và sau đó là xây dựng kênh giao tiếp với phía nhà cung cấp.
Thật ra, tư tưởng về một hệ thống SOA không phải là mới. Mô hình Comnon Object
Request Broker Architecture (CORBA) và mô hình Distributed Component Object
Model (DCOM) của Microsoft hay như Enterprise Java Bean (EJB) của Java của đã
cung cấp tính năng này từ lâu. Tuy nhiên những cách tiếp cận hướng dịch vụ này vẫn
còn gặp phải một số vấn đề khó khăn (đã phân tích ở trên). SOA không chỉ là một cải
tiến đáng kể giúp giải quyết những yếu điểm của các công nghệ trước mà còn đem đến
nhiều ưu điểm nổi trội hơn.
2. Các tính chất của một hệ thống SOA
Kiến trúc hướng dịch vụ có bốn tính chất quan trọng. Bốn tính chất này được coi là cốt
lõi của kiến trúc hướng dịch vụ.
Tính giảm sự kết dính (loose coupling): Giảm sự kết dính chính là giảm
sự ràng buộc giữa các thành phần trong hệ thống. Mức độ kết dính của hệ thống ảnh
hưởng trực tiếp đến khả năng chỉnh sửa và mở rộng của hệ thống. Kết dính càng chặt
bao nhiêu thì khi có yêu cầu chỉnh sửa càng phải chỉnh sửa nhiều thành phần liên quan.
Tính tái sử dụng: Bởi vì các dịch vụ được cung cấp trên mạng và được
đăng kí ở một nơi nhất định nên chúng ta dễ dàng tìm thấy và tái sử dụng. Việc tái sử
dụng còn giúp chúng ta loại bỏ các thành phần trùng lắp. Việc tái sử dụng lại dịch vụ
nó dễ dàng hơn việc tái sử dụng các component hay các class.
Tính bất đồng bộ: Các yêu cầu về xử lý được đưa vào hàng đợi và được
xử lý với tốc độ tối ưu. Do bên yêu cầu không phải chờ bên xử lý yêu cầu xong nên có
thể tránh được các lỗi về time-out, ảnh hưởng đến hiệu năng của hệ thống. Cùng một
lúc có thể xử lý nhiều công việc.
Tính cộng tác: Kiến trúc SOA nhấn mạnh đến khả năng cộng tác, khả
năng mà hệ thống có thể giao tiếp trên nhiều nền tảng khác nhau, ngôn ngữ lập trình
khác nhau. Mỗi dịch vụ được cung cập một Interface để cho các dịch vụ, các ứng dụng
client triệu gọi thực thi.
3. Lợi ích khi sử dụng SOA
Nói đến SOA là nói đến ‘tiết kiệm’- cả tiết kiệm chi phí lẫn thu được giá trị nhiều hơn
từ các hệ thống có sẵn. Hẳn cũng phải có lý do để hàng trăm tập đoàn đã chú ý đến
SOA như một giải pháp tích hợp nhằm giảm giá thành của một đề án một cách rất ấn
tượng
Sử dụng lại thành phần có sẵn: Một trong những lợi ích rõ ràng nhất của
SOA là nó giúp các công ty thu được giá trị nhiều hơn bằng cách sử dụng lại những tài
nguyên sẵn có; kết quả là giảm chi phí cho phần kiến trúc và tích hợp. Ngoài ra nó còn
giúp giảm chi phí mua phần mềm mới. Thời gian viết chương trình lấy dữ liệu từ máy
chủ trước đây được tính bằng tháng thì bây giờ chỉ còn tính bằng phút ! Lợi ích của
việc sử dụng lại có thể chia làm 2 phần:
Lợi ích từ việc sử dụng lại những thành phần nhằm giảm tính dư
thừa.
Lợi ích từ việc sử dụng lại những thành phần có sẵn khi thiết kế cung
cấp một chức năng mới.
Tăng tính linh hoạt, khả năng triển khai cài đặt: Lợi ích kế tiếp đến từ
tính loose coupling của SOA, trong đó phía triệu gọi dịch vụ không cần quan tâm đến
địa chỉ hoặc công nghệ nền tảng của service. Nó mang đến khả năng linh hoạt cao và
nhiều lợi ích khác.
Hỗ trợ đa thiết bị và đa nền tảng: SOA cung cấp một tầng giao tiếp trừu
tượng từ các nền tảng bên dưới. Điều này cho phép hỗ trợ nhiều loại thiết bị đầu cuối
khác nhau bao gồm cả những trình duyệt và thiết bị di động như webbrower, điện thoại
di động, PDA và các thiết bị chuyên dụng khác sử dụng cùng một chức năng mà vẫn có
thông tin trả về tùy theo dạng thiết bị. Tính độc lập công nghệ này giúp cho các công ty
tiết kiệm chi phí rất nhiều nhất là khi phải xử lý với vô số công nghệ hiện đang được sử
dụng.
Tăng khả năng mở rộng và khả năng sẵn sàng cung cấp: Nhờ tính chất
giảm độ kết dính giữa các thành phần, dịch vụ cho nên khả năng mở rộng, chỉnh sửa,
phát triển hệ thông. Công nghệ cân bằng tải sẽ tự động tìm tuyến đi của để xử lý dữ
liệu do đó làm tăng khả năng sẵn sàng cung cấp.
4. Các mô hình của kiến trúc hướng dịch vụ
Mô hình cổ điển Mô hình cải tiến
Hình 6-44Mô hình service registry
Hình 6-45Mô hình service broker
Hình 6-46Mô hình service buss
6.1.2 Áp dụng kiến trúc hướng dịch vụ vào ứng dụng LBS
a. Ưu điểm của việc áp dụng kiến trúc SOA vào LBS:
Tận dụng được các nền tảng đã có sẵn: Hiện nay chúng ta có rất nhiều
dịch vụ, thư viện hỗ trợ về việc lập trình LBS như đã nêu ở chương trước, hỗ trợ từ
việc xây dựng bản đồ cho tới việc định vị trí. Nếu không có kiến trúc hướng dịch vụ,
nếu các thư viện hỗ trợ lập không trở thành dịch vụ thì để xây dựng một ứng dụng LBS
hoàn chỉnh chúng ta phải mất rất nhiều công sức từ việc xây dựng bản đồ, xây dựng cơ
sở dữ liệu, thuật toán, công nghệ truyền tải, công nghệ định vị. Thì giờ đây, với kiến
trúc hướng dịch vụ chúng ta có thể sử dụng lại những thành phần đã được xây dựng từ
các “ông lớn” như Google, Yahoo…Chúng ta có thể sử dụng lại bản đồ Google, dữ
liệu Yahoo, các xử lý phức tạp từ Microsoft, xử lý đơn giản tại server xử lý LBS của
mình.
Cho phép thiết bị di động và máy tính liên lạc với nhau: Thiết bị di
động và máy tính là hai thiết bị khác nhau về bản chất hoạt động cũng như là hệ điều
hành. Do đó vấn đề đặt ra là làm sao để hai thiết bị khác nhau này có thể truyền thông
tin liên lạc được với nhau. Bản chất của SOA là không phân biệt nền tảng ứng dụng,
thiết bị do việc truyền nhận dữ liệu trong mô hình SOA được thực hiện dưới dạng text
theo một định nghĩa có sẵn.
Cho phép mở rộng chức năng: Ứng dụng LBS là ứng dụng cung cấp
dịch vụ do đó mà nhu cầu mở rộng, phát triển dịch vụ sẽ rất cao. Cho nên việc phát
triển linh hoạt các dịch vụ với chi phí và thời gian tiết kiệm được đặt như là một yêu
cầu hàng đầu. Đây cũng chính là một trong những tính chất của mô hình SOA, do nó
sử dụng lại các dịch vụ được xây dựng, hơn nữa việc thay đổi dịch vụ này và các thành
phần liên quan ảnh hưởng tới nhau ít cho nên thời gian, chi phí để mở rộng được rút
ngắn.
b. Nhược điểm của việc áp dụng kiến trúc hướng dịch vụ vào LBS:
Mặc dù kiến trúc SOA đã giúp cho ứng dụng LBS có được những ưu điểm tối ưu như
trên, tuy nhiên mô hình này vẫn có để lại những hạn chế như sau:
Do việc xử lý trên SOA hoạt động thông qua đường mạng nên tốc độ phụ
thuộc nhiều vào tốc độ của đường truyền. Với đường truyền hiện nay (thông qua
GPRS) thì tốc độ khá chậm.
Trong tình trạng nếu Internet bị đứt kết nối thì ứng dụng LBS không hoạt
động được. Vì toàn bộ xử lý, dữ liệu đều để ở các máy server.
Về chi phí thì chúng ta phải tốn chi phí để trang bị thêm thiết bị: chi phí
về server, đường truyền Internet.
Tuy nhiên những yếu điểm trên chỉ là những yếu tố khách quan, có thể khác phục
được, không thấm vào đâu so với những ưu điểm to lớn mà SOA mang lại cho LBS.
Do đó trong đề tài lần này, nhóm làm đề tài quyết định sử dụng mô hình SOA vào ứng
dụng LBS.
6.1.3 Tài liệu tham khảo
http://en.wikipedia.org/wiki/Service-oriented_architecture
Service Oriented Architecture (SOA) and Specialized Messaging Patterns
Understanding Service-Oriented Architecture – Microsoft Press
Expert Service Oriented Architecture- Jeffrey Hasan
Service Oriented Architecture - Selda Güner
What Is Service Oriented Architecture- XML.Com
6.2 Tìm hiểu về Webservices
6.2.1 Định nghĩa Webservices
Web Services được định nghĩa bởi tổ chức W3C(World Wide Web Consortium), Web
Services là sự kết hợp của một máy tính phân phối với nhiều máy tính khác được giao
tiếp qua mạng tạo thành một hệ thống. Web Services cho phép các nhà phát triển sử
dụng các công cụ khác nhau của các nhà phát triển khác nhau để tạo ra các ứng dụng
bao gồm nhiều module khác nhau, các module này sẽ được cung cấp cho các phòng
ban và các công ty khác để phát triển các ứng dụng của họ.
Web Services được các nhà phát triển tạo ra để cung cấp các chức năng và đóng gói
các chức năng đó sao cho các ứng dụng khác dể dàng nhìn thấy và truy cập đến những
dịch vụ mà Web Services cung cấp, ngoài ra nó có thể yêu cầu các thông tin từ các
Web Services khác.
Ừng dụng LBS là một ứng dụng Client – Server do đó để truyền nhận dữ liệu ta sử
dụng Web Services. Web Services truyền dữ liệu ở dạng XML và được nhiều ngôn
ngữ lập trình hổ trợ do đó các ứng dụng Client dể dàng nhận và xử lý các dữ liệu XML
này.
Hình 6-47 Mô hình Web Services
6.2.2 Ưu và nhược điểm của Web Services
a. Ưu điểm.
Các Web Services cho phép các ứng dụng khác nhau ( phát triển trên các
ngôn ngữ khác nhau ) và hoạt động trên các hệ điều hành khác nhau có thể liên kết giao
tiếp và chia sẽ dữ liệu cho nhau.
Sử dung ngôn ngữ XML để giao tiếp dữ liệu giúp cho các nhà phát triển
dể nắm bắt hơn.
Giúp cho việc xây dựng ứng dụng phân tán dể dàng hơn.
b. Nhược điểm.
Trong quá trình WebServices hoạt động nếu Server gặp sự cố, thì Client
sẽ không gọi được các WebServices, do đó làm mất dữ liệu.
Có qua nhiều chuẩn giao tiếp dữ liệu cho Web Services.Vấn đề này làm
cho các nhà phát triển khó xác định trong quá trình phát triển.
Các vấn đề về an toàn và bảo mật cho Web Services.Do quá trình truyền
dữ liệu thông qua mạng internet do đó việt an toàn và bảo mật dữ liệu trên đường
truyền rất quan trong.
Chương 7 CÔNG NGHỆ XÂY DỰNG HỆ THỐNG LBS
Nội dung của chương 7 trình bày về tổng quan về công nghệ .NET, công
nghệ được sử dụng để xây dựng nên hệ thống LBS. Đây được coi là chương định
hướng cho phần cài đặt hệ thống LBS. Chương 7 cũng nêu rõ các ưu điểm, khuyết
điểm của công nghệ .NET, ngôn ngữ lập trình C# trong ứng dụng LBS
7.1 Tổng quan về .Net Framework
7.1.1 Giới thiệu về .Net Framework.
a. Giới thiệu
.Net Framework là một nền tảng lập trình được tích hợp vào hệ điều hành Windows,
dùng để xây dựng nên các ứng dụng của thế hệ mới cho hệ điều hành Windows đồng
thời cũng cung cấp một giao diện lập trình chuẩn để xây dựng các ứng dụng truyền
thông trên mạng Internet nhằm phục vụ cho các ứng dụng không phân biệt nền tảng.
Các ngôn ngữ lập trình sử dụng nền tảng .NET Framework bao gồm C#, J#, Visual
Basic.NET, Visual C++.NET.
Mục tiêu:
Sự ra đời của .Net Framework nhằm vào hai mục đích quan trọng:
Mục tiêu thứ nhất: Loại bỏ các thành phần riêng biệt của ứng dụng cho phép ứng
dụng trao đổi thông tin và xây dựng trên cùng một nền tảng chung hơn.
Mục tiêu thứ thứ hai: Chuẩn hóa truyền thông thương mại điện tử. Điều này có
nghĩa .NET cung cấp một cách cho các ứng dụng khác nhau trong những môi trường
khác nhau có thể trao đổi và sử dụng thông tin. Thành quả này được hoàn tất khi sử
dụng XML. XML đem lại một số lượng lớn những người ủng hộ và có thể được sử
dụng để làm tiêu chuẩn hóa các máy phục vụ truyền thông, nơi những ứng dụng khác
nhau và các dịch vụ chạy trên các ứng dụng này có thể dễ dàng liên lạc với một ứng
dụng khác và trao đổi thông tin một cách tự nhiên.
Kiến trúc cơ bản của .Net Framework
Kiến trúc của .Net Framework
.Net Framework có hai thành phần chính: .NET Runtime, các thư viện hỗ trợ lập
trình (.NET Framework Based Classes).
.NET Runtime: còn được gọi là Common Language Runtime (CLR) được coi là nền
tảng của .NET Framework. Chính .NET Runtime là công cụ để chỉ dẫn đường cho
chương trình của bạn thực thi như thế nào. .Net Runtime quản lý mã nguồn tại lúc thực
thi, cung cấp các dịch vụ cốt lỗi như là: quản lý bộ nhớ, quản lý tiến trình. Đồng thời là
nơi đảm bảo tính an toàn cho mã nguồn của chương trình. Để làm được điều này CLR
được thiết kế gồm 2 thành phần :
- Runtime Enviroment: Môi trường thực thi ứng dụng. Trong phần này CLR sẽ
biên dịch ứng dụng từ mã IL sang mã máy. Thực chất .Net không biên dịch ứng
dụng ra mã máy luôn khi biên dịch chương trình, .Net sẽ biên dịch ứng dụng ra
một ngôn ngữ tạm có tên là IL. Thành phần Runtime Enviroment này có trách
nhiệm biên dịch nhanh ngôn ngữ IL ra mã máy trong lúc thực thi ứng dụng.
- Runtime- Service: Là những dịch vụ chịu trách nhiệm về:
o Quản lý bộ nhớ: tự động cấp phát và thu dọn bộ nhớ.
o Chính sách bảo mật, an toàn của ứng dụng.
o Quản lý lỗi, biệt lệ
o Hỗ trợ mạch trình, debug.
Thư viện hỗ trợ lập trình: là thành phần chính thứ hai của .NET Framwork. Nơi đây
cung cấp một thư viện lập trình đồ sộ chứa những mã nguồn đã được viết sẵn và đóng
gói theo mô hình hướng đối tượng. Dựa trên các lớp thư viện này, bạn thực hiện vô số
thao tác trên ứng dụng từ việc hiển thị cửa sổ, gọi thực thi những dịch vụ cơ bản của hệ
điều hành như là đọc ghi file, truy xuất mạng, truy xuất dữ liệu từ hệ quản trị CSDL.
Thư viện hỗ trợ lập trình trên .NET được xây dựng để phục vụ cho các loại ứng dụng
sau:
- Webservice: các thành phần có thể truy xuất thông qua Internet một cách dễ
dàng.
- WebForm: cung cấp một thư viện hỗ trợ lập trình giao diện tạo ra website.
- WinForm: cung cấp thư viện hỗ trợ lập trình cho ứng dụng trên desktop. Hỗ trợ
từ việc tạo cửa sổ cho ứng dụng đến các thao tác đồ họa.
- Windows Console Application: là dạng ứng dụng với giao diện đơn giản, nhằm
cho các ứng dụng có tính chất nhanh chóng, không đòi hỏi về giao diện.
- Windows Services: Xây dựng ứng dụng dịch vụ dưới dạng Windows Services
- Component Library. Cho phép lập trình viên xây dựng nên các thư viện để có
thể tái sử dụng cho các ứng dụng khác.
a. Ư u điểm
Thống nhất các ngôn ngữ lập trình cùng hoạt động dưới một nền tảng: Sự thống nhất
này có ý nghĩa rất to lớn, cho phép các ngôn ngữ lập trình C#, C++, VB.NET cùng
hoạt động dưới một mái nhà chung, cùng chung công nghệ điều này giúp cho lập trình
viên không phải mất thời gian với nhiều công nghệ mới. Về phía người sử dụng thì
không phải cài đặt nhiều nền tảng. Đối với nhà phát triển thì không phải mất thời gian,
tiền bạc để phát triển các công nghệ riêng lẽ.
.NET Framework hỗ trợ lập trình cho nhiều dạng ứng dụng trên cùng một ngôn ngữ,
một nền tảng. Xây dựng một bộ thư viện hỗ trợ lập trình khổng lồ, cung cấp cho đủ các
loại ứng dụng : Windows Form, Web Application, Webserivce, Console Application…
Tất cả các loại ứng dụng đó đều có thể được phát triển bằng .Net Framework với các
ngôn ngữ lập trình C#, Vb.NET
.NET Framework hỗ trợ giao tiếp chuẩn giữa các ứng dụng có nền tảng khác nhau,
chạy trên các môi trường hệ điều hành khác nhau, ngôn ngữ lập trình khác nhau. Định
nghĩa cách giao tiếp chuẩn sử dụng Webservice
Tuy vậy .NET Framework tồn tại một nhược điểm là chỉ chạy trên thiết bị của
Microsoft. Không chạy được trên các hệ điều hành khác được.
Đối với ứng dụng LBS, .NET Framework được dùng để viết các chức năng cho tầng
server. Để dễ dàng phân phối dữ liệu, ở tầng server được lập trình theo dạng
webservice. Ở đây luận văn chọn công nghệ .NET 2.0 để xây dựng webservice phục vụ
cho tầng server.
7.1.2 Ngôn ngữ lập trình C#
a. Tổng quan C Sharp
Giới thiệu về C Sharp.
C Sharp( C#) là một ngôn ngữ lập trình mới được xây dựng bởi công ty Microsoft. C
Sharp được thiết kế để dùng cho Microsoft’s .Net Framework(Đây là một nền tảng khá
mạnh cho sự phát triển, triển khai, hiện thực và phân phối các ứng dụng.). C Sharp là
ngôn ngữ hoàn toàn hướng đối tượng được phát triển dựa trên các ngôn ngữ C++,
Java…
C Sharp là một ngôn ngữ đơn giản.
C Sharp đã loại bỏ các cấu trúc phức tạp và khó khăn của các ngôn ngữ C++ và Java.
Bao gồm loại bỏ các macro, đa kế thừa và các lớp cơ sở ảo, giúp cho lập trình viên
không bị nhầm lẫn khi sử dụng,.
C Sharp rất đơn giản vì nó được dựa trên C và C++. Nếu bạn đã từng học qua ngôn
ngữ C, C++ chúng ta sẽ thấy được C Sharp rất quen thuộc với chúng ta. Các phát biểu,
biểu thức , toán tử và các chức năng khác được lấy từ ngôn ngữ C và C++, bên cạnh đó
C Sharp cũng loại bỏ những dư thừa, những cải tiến làm ngôn ngữ C sharp trở nên đơn
giản hơn. Ví dụ , trong ngôn ngữ C Sharp chúng ta sẽ không tìm thấy được các ký hiệu
con trỏ (->), hoặc đa kế thừa như trong C, C++.
C Sharp là một ngôn ngữ hiện đại.
Xử lý các trường hợp ngoại lệ giúp qua trình quản lý các lỗi phát sinh không mong
muốn từ hệ thống được dễ dàng hơn.
Tự động dọn dẹp bộ nhớ khi các biến , các đối tượng không còn được sử dụng.
Cho phép người dùng xây dựng các kiểu dữ liệu mở rộng.
Bảo mật mã nguồn của hệ thống giúp tránh sự xâm nhập trái phép vào hệ thống của các
yếu tố bên ngoài.
C Sharp là ngôn ngữ hướng đối tượng.
C Sharp là ngôn ngữ hướng đối tượng. Csharp hổ trợ đóng gói, kế thừa, đa hình.
Nhưng C Sharp không hổ trợ đa kế thừa như trong ngôn ngữ C và C++ vì dễ gay nhầm
lẫn cho người dùng khi sử dụng nó.
C Sharp là ngôn ngữ linh hoạt và mạnh mẽ.
Với C Sharp chúng ta có thể xây dựng được những ứng dụng như trí tượng tượng
chúng ta nghĩ. Chúng ta có thể xây dựng các dự án khác nhau như các ứng dụng văn
phòng(Word, Excel…) đến các ứng dụng dùng trong doanh nghiệp, các trò chơi điện
tử, thậm chí chúng ta có thể sử dụng C Sharp để xây dựng nên các trình biên dịch cho
các ngôn ngữ khác.
C Sharp là ngôn ngữ ít từ khóa.
C Sharp là ngôn ngữ có số lượng từ khóa giới hạn. Tuy là một ngôn ngữ với một số lượng từ khóa giới
hạn nhưng ngôn ngữ C Sharp hoàn toàn có khả năng làm bất cứ ứng dụng.
Abstract As Base Bool Break
Byte Case Catch Char Checked
Class Const Continue Decimal Default
Delegate Do Double Else Enum
Event Explicit Extern False Finally
Fixed Float For Foreach Goto
If Implicit In Int Interface
Interface Internal Is Lock Long
Namespace New Null Object Operator
Out Override Params Private Protected
Public Readonly Ref Return Sbyte
Sealed Short Sizeof Stack Alloc
Static String Struct Switch This
Throw True Try Typeof Uint
Ulong Unchecked Unsafe Ushort Using
Virtual Void While
C Sharp là ngôn ngữ phổ biến.
C Sharp được Microsoft xây dựng với rất nhiều kỳ vọng đưa nó trở thành một ngôn
ngữ phổ biến. Với nhiều ưu điểm đơn giản, hướng đối tượng….
Lịch sử phát triển C Sharp.
Năm 1970 Dennis Ritchie đã phát minh ra ngon ngữ C.C là ngôn ngữ lập trình cấu
trúc.
Do C là ngôn ngữ lập trình hướng cấu trúc do đó với những chương trình có kích thước
lớn nó sẽ làm khó khăn cho các lập trình viên trong quá trình quản lý mã nguồn và lỗi
phát sinh. Do đó từ năm 1980 ngôn ngữ C++ đã được xây dựng. Đây là một ngôn ngữ
được xây dựng dựa trên ngôn ngữ C. C++ hổ trợ người dùng lập trình theo hướng cấu
trúc như C, ngoài ra C++ còn hổ trợ người dùng lập trình theo hướng đối tượng giúp
cho các lập trình viên dễ dàng hơn trong quá trình quản lý mã nguồn và quản lý lỗi
phát sinh.
Năm 1991 Sun Microsystem cho ra đời ngôn ngữ lập trình Java. Đây là môt ngôn ngữ
lập trình hướng đối tượng và được xây dựng dựa trên ngôn ngữ C++.
Từ tháng 1 năm 2002, công ty Microsoft đã cho ra đời phiên bản đầu tiên của ngôn ngữ
C Sharp là C Sharp 1.0. Đây là ngôn ngữ được Microsoft xây dựng dựa trên nền tản
của C++ và ngôn ngữ Java. Cho đến thời điểm hiện tại Microsoft đã cho ra đời phiên
bản C Sharp 3.0 vào tháng 11 năm 2006
b. Ưu và nhược điểm của C Sharp.
Ưu điểm.
C Sharp vay mượn các khái niệm của C++ và Java, lựa chọn các yếu tố tốt và
loại bỏ các yêu tố dể gây ra lỗi khi xây dựng ứng dụng.
C Sharp là một ngôn ngữ ngắn gọn.
C Sharp hổ trợ nhà phát triển tái sử dụng lại mã nguồn.
C Sharp là một ngôn ngữ hướng đối tượng. Cho phép các nhà phát triển xây
dựng các ứng dụng trung tâm dữ liệu an toàn.
C Sharp có thể dùng một bộ soạn thảo văn bản đơn giản để
viết(wordpad,notepad…) và biên dịch thông qua command line do bất ký một hệ điều
hành cung cấp và các nhà phát triển đã cài đặt CLR trên đó.Ngoài ra Microsoft cũng
cung cấp cho người dùng một bộ công cụ trực quan giúp các nhà phát triển xây dựng
ứng dụng và triển khai một cách dể dàng hơn đó là bộ công cụ phát triển Microsoft
Visual Studio.
C Sharp cung cấp khả năng mở rộng cho nhà phát triển. Các nhà phát triển có
thể xây dựng thêm các lớp các thư viện từ các thư viện có sẵn theo mong muốn của nhà
phát triển.
Chương trình C Sharp được quản lý mã(Manage code), chúng được mã hóa và
quản lý trong môi trường được kiểm soát. Ngoài ra C Sharp còn loại bỏ một số tính
năng không an toàn trong C++, những lỗi này sẽ giúp cho các kẻ xâm nhập vào các
phần mềm và gây hại chúng.
C Sharp giấu hết các thư viện cấp thấp và cung cấp cho nhà phát triển dùng một
hệ thống thư viên. Từ các thư viện này các nhà ứng dụng có thể xây dựng các ứng
dụng mà không quan tâm đến tính tương thích của nó với hệ thống.
C Sharp được dùng để viết nhiều loại ứng dụng khác nhau. Từ các ứng dụng để
bàn, đến các ứng dụng web, các ứng dụng đòi hỏi sự an toàn cao, và ngay cả viết
chương trình điều khiển robot.
Nhược điểm.
C Sharp là ngôn ngữ do Microsoft cung cấp, và nó chỉ hoát động trên môi
trường window. Mặc dù trong thời điểm hiện tại Microsoft Window chiếm thị phần lớn
trong số các hệ điều hành. Nhưng với những người sử dụng các hệ điều hành khác như
linux, Mac…thì các nhà phát triển không thể xây dựng các ứng dụng C Sharp trên
nó.đây là một thiếu sót lớn của C Sharp.
Mặc dù C Sharp cần 1 trình soạn thảo để viết và dùng dòng lệnh để biên dịch
nhưng các nhà phát triển cũng cần phải cài đặt môi trường .Net lên hệ thống.
Ứng dụng C Sharp xây dựng Web Services.
WebServices là một công nghệ được rất nhiều ngôn ngữ lập trình hổ trợ và .Net cũng
không phải là một ngoại lệ. Dưới đây là những bước cơ bản để xây dựng một Web
Services trên môi trường .Net với ngôn ngữ C Sharp với môi trường Visual Studio
2005.
Bước 1: Trong Visual Studio ta tạo project Web Services với ngôn ngữ là C Sharp.
File>New WebSite>ASP.Net Web Services, chọn ngôn ngữ xây dựng Web Services là
C Sharp và đường dẫn lưu Web Services( Mặc định Web Services được tạo ra sẽ được
lưu trữ trên localhost).
Bước 2: Kiểm tra dự án mới tạo ra.
Khi project được tạo, tập tin services.cs là tập tin chứa mã nguồn(code-behind), nó
được chưa trong thu mực APP_Code. Đây là tập tin mặc định do project tạo ra.
Bước 3: Điều chỉnh và sửa đổi tên tập tin code-behind.
Chúng ta có thể xóa tập tin services.cs(code-behinh) hoặc sửa tên của tập tin theo ý mà
chúng ta muốn. Nếu xóa tập tin chúng ta cần tạo lại tập tin ta chọn Add>New Item.
Bước 4: Viết các phương thức cho các tập tin Web Services.
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
/// <summary>
/// Cộng 2 số
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Add : System.Web.Services.WebService {
public Add () {
}
[WebMethod]
public Int32 Add2Number(Int32 a,Int32 b) {
return (a + b);
}
}
Bước 6: Chạy thử Web Services và kiểm tra kết quả.
7.2 Hệ quản trị cơ sở dữ liệu SQL Server 2005 và ứng dụng LBS
7.2.1 Giới thiệu về SQL Server 2005
SQL Server 2005 là một hệ thống quản trị cơ sở dữ liệu sử dụng T-SQL làm ngôn ngữ
truy vấn chính để trao đổi dữ liệu giữa tầng client và tầng dữ liệu. SQL Server 2005
được tối ưu để hoạt động trên môi trường CSDL rất lớn phục vụ cho hàng ngàn người
truy cập. SQL Server 2005 có khả năng tích hợp với các hệ thống khác như IIS, E-
Commercial Server đặc biệt là trên nền tảng .NET. Sự tích hợp mạnh mẽ của SQL
Server 2005 với nền tảng .NET ở chỗ hỗ trợ mạnh mẽ sử dụng ngôn ngữ lập trình
C#,VB.NET để tạo ra các đối tượng CSDL như store procedure, function, trigger…
7.2.2 GIS và SQL Server 2005
Ưu điểm
Chương 8 PHÂN TÍCH
Chương 9 THIẾT KẾ
9.1 Sơ đồ lớp
9.1.1 Sơ đồ lớp phía server
1. Tầng Bussiness
2. Tầng Data Access Layer
3. Tầng Data Tranfer Object
9.1.2 Sơ đồ lớp ở phía client.
1. Tầng Bussiness.
2. Tầng Data Access Layer.
3. Tầng Data Tranfer Object.
9.2 Sơ đồ tuần tự
9.2.1 Chức năng lấy hình ảnh bản đồ từ Google Map API
: Client : Client : Webservice LBS : Webservice LBS : MapProviderController : MapProviderController : GoogleMapProvide : GoogleMapProvide : Map : Map : Google API : Google API
1. GetMap()
1.1. GetMap()
1.1.1. GetMap()
1.1.1.1. CheckValidInput( )
1.1.1.1.1. CheckLocation( )
1.1.1.1.2.
[If valid]
1.1.1.2. GetImage()
1.1.1.3. CombineImage()
1.1.1.4. ConvertToByte()
1.1.1.5.
Return byte to client application
1.1.2.
1.2.
9.2.2 Chức năng Tìm kiếm địa điểm
9.2.3 Chức tìm kiếm con đường
: Client : Client : Webservice LBS : Webservice LBS : StreetController : StreetController : Street : Street
[if valid]
[If exist street]return List street
1. FindStreet( )
1.1. FindStreet( )
1.1.1. CheckValid()
1.1.1.1. Check keyword()
1.1.1.2. CheckRadius()
1.1.1.3.
1.1.2. FindStreet()
1.1.2.1. ConnectToDb()
1.1.2.2. ExecuteQuery()
1.1.2.3.
1.1.3.
1.2.
9.2.4 Chức năng tìm kiếm đường đi ngắn nhất
: Client : Client : Webservice LBS : Webservice LBS : NodeController : NodeController : Node : Node
1. GetShortPath( )
1.1. GetShortNodePath( )
1.1.1. CheckValidInput()
1.1.1.1. CheckNodeValid( )
1.1.1.2.
[If valid]
1.1.2. GetShortPath( )
1.1.2.1. AStar( )
1.1.2.2.
Return list node1.1.3.
1.2.
Chương 10 CÀI ĐẶT
10.1 Cài đặt phần server
Chương 11 KIỂM CHỨNG
11.1 Kiểm chứng phần server
1. Test case 1: Kiểm chứng chức năng lấy hình ảnh của bản đồ từ hệ
thống Google Map
Tiền điều kiện: Ứng dụng webservice phục vụ cho hệ thống LBS đã đưa vào trạng thái
sẵn sàng hoạt động. Người kiểm chứng đang mở ứng dụng webserivce sẵn sàng thực
thi. Chọn phương thức GetMap để sẵn sàng hoạt động
Dữ liệu kiểm chứng:- xPoint =3340032
- yPoint = 1970944
- zoom= 14
- width= 240
- height= 320
- source= Google
Từng bước thực hiện:- Nhập dữ liệu xPoint vào ô nhập liệu xPoint
- Nhập dữ liệu yPoint vào ô nhập liệu yPoint
- Nhập dữ liệu zoom vào ô nhập liệu zoom
- Nhập dữ liệu width vào ô nhập liệu width
- Nhập dữ liệu height vào ô nhập liệu height
- Nhậm dữ liệu source vào ô nhập liệu source
- Nhấn nút Invoke
Hình ảnh minh họa:
Kết quả: hình ảnh của bản đồ Google được trả về dưới dạng mã byte 64. Đồng thời
lưu hình ảnh đó vào thư mục cache trên máy chủ
Kết quả mong đợi: hình ảnh của bản đồ Google được trả về dưới dạng mã byte 64.
Đồng thời lưu hình ảnh đó vào thư mục cache trên máy chủ.
Kết luận: Pass
2. Test case 2: Kiểm tra tính chịu lỗi của chức năng lấy hình ảnh trong
bản đồ của Google Map
Tiền điều kiện: Ứng dụng webservice phục vụ cho hệ thống LBS đã đưa vào trạng thái
sẵn sàng hoạt động. Người kiểm chứng đang mở ứng dụng webserivce sẵn sàng thực
thi. Chọn phương thức GetMap để sẵn sàng hoạt động
Dữ liệu kiểm chứng:
- xPoint =-1
- yPoint = -1
- zoom= 14
- width= 240
- height= 320
- source= “”
Từng bước thực hiện
- Nhập dữ liệu xPoint vào ô nhập liệu xPoint
- Nhập dữ liệu yPoint vào ô nhập liệu yPoint
- Nhập dữ liệu zoom vào ô nhập liệu zoom
- Nhập dữ liệu width vào ô nhập liệu width
- Nhập dữ liệu height vào ô nhập liệu height
- Bỏ trống ô nhập liệu source
- Nhấn nút Invoke
Hình ảnh minh họa:
Kết quả : ứng dụng báo lỗi, Bắt phải nhập xPoint, yPoint và là một con số nguyên
dương
Kết quả mong muốn : Ứng dụng báo lỗi, bắt phải nhập xPoint, yPoint
Kết luận: Pass
3. Test case 3: Kiểm tra chức năng lấy các địa điểm theo tên địa điểm
Tiền điều kiên: Ứng dụng webservice phục vụ cho hệ thống LBS đã đưa vào trạng thái
sẵn sàng hoạt động. Người kiểm chứng đang mở ứng dụng webserivce sẵn sàng thực
thi. Chọn phương thức GetPlaceName để sẵn sàng hoạt động
Dữ liệu kiểm chứng:
- name= ATM
- xLocation=21.01388
- yLocation=105.8133
- radius=1
Từng bước thực hiện:
- Nhập dữ liệu name và ô nhập liệu name
- Nhập dữ liệu xLocation vào ô nhập liệu xLocation
- Nhập dữ liệu yLocation vào ô nhập liệu yLocation
- Nhập dữ liệu radius vào ô nhập liệu radius
- Nhấn nut Invoke để thực hiện tìm kiếm
Hình ảnh minh họa
Kết quả: Ứng dụng webserice trả về một danh sách bao gồm các địa điểm có chứa từ
ATM trong khoảng 1KM tính từ xLocation, yLocation
Kết quả mong đợi: Ứng dụng webserice trả về một danh sách các địa điểm có chứa từ
ATM trong vòng 1KM tính từ xLocation, yLocation
Kết luận: Pass
4. Test case 4: Kiểm tra tính chịu lỗi của phương thức tìm kiếm địa
điểm dựa trên tên địa điểm
Tiền điều kiện: Ứng dụng webservice phục vụ cho hệ thống LBS đã đưa vào trạng thái
sẵn sàng hoạt động. Người kiểm chứng đang mở ứng dụng webserivce sẵn sàng thực
thi. Chọn phương thức GetPlaceName để sẵn sàng hoạt động
Dữ liệu kiểm chứng:
- name= <bỏ trống>
- xLocation={<bỏ trống>, số âm}
- yLocation={<bỏ trống>, số âm}
- radius=1
Các bước thực hiện:
- Để trống ô nhập liệu name
- Nhập dữ liệu xLocation vào ô nhập liệu xLocation
- Nhập dữ liệu yLocation vào ô nhập liệu yLocation
- Nhập dữ liệu radius vào ô nhập liệu radius
- Nhấn nut Invoke để thực hiện tìm kiếm
Hình ảnh minh họa:
Kết quả: Ứng dụng webservice báo lỗi , yêu cầu nhập liệu các tham số cho đúng. Ô
nhập liệu name là bắt buộc, xLocation, yLocation bắt buộc không được trống và phải
lớn hơn 0.
Kết quả mong đợi: Ứng dụng webservice báo lỗi , yêu cầu nhập liệu các tham số cho
đúng. Ô nhập liệu name là bắt buộc, xLocation, yLocation bắt buộc không được trống
và phải lớn hơn 0.
Kết luận: Pass
5. Test case 5: Kiểm tra tính năng tìm kiếm theo tên đường
Tiền điều kiện: Ứng dụng webservice phục vụ cho hệ thống LBS đã đưa vào trạng thái
sẵn sàng hoạt động. Người kiểm chứng đang mở ứng dụng webserivce sẵn sàng thực
thi. Chọn phương thức GetStreetByName để sẵn sàng hoạt động.
Dữ liệu nhập:
- name= Hung vuong
- xLocation= 12.2356438
- yLocation=109.1955795
- radius=1
Các bước thực hiện:
- Nhập dữ liệu name và ô nhập liệu name
- Nhập dữ liệu xLocation vào ô nhập liệu xLocation
- Nhập dữ liệu yLocation vào ô nhập liệu yLocation
- Nhập dữ liệu radius vào ô nhập liệu radius
- Nhấn nut Invoke để thực hiện tìm kiếm
Hình ảnh minh họa:
Kết quả: Trả về danh sách thông tin các con đường có tên Hung Vuong
Kết quả mong đợi: Trả về danh sách thông tin các con đường có tên Hung Vuong
Kết luận: Pass
6. Test case 6: Kiểm tra tính chịu lỗi của chức năng tìm kiếm đường
Tiền điều kiện: Ứng dụng webservice phục vụ cho hệ thống LBS đã đưa vào trạng
thái sẵn sàng hoạt động. Người kiểm chứng đang mở ứng dụng webserivce sẵn sàng
thực thi. Chọn phương thức GetStreetByName để sẵn sàng hoạt động.
Dữ liệu nhập:
- name= <Bỏ trống>
- xLocation= {<bỏ trống>, số âm}
- yLocation={<bỏ trống>, số âm}
- radius={bỏ trống, số âm}
Các bước thực hiện:
- Bỏ trống ô nhập liệu name
- Nhập liệu xLocation vào cho ô nhập liệu xLocation
- Nhập liệu yLocation vào cho ô nhập liệu yLocation
- Nhập radius vào ô nhập liệu radius
Hình ảnh minh họa:
Kết quả: Báo lỗi, yêu cầu nhập name, nhập giá trị đúng cho xLocation, yLocation,
radius bắt buộc lớn hơn 0
Kết quả mong đợi: Báo lỗi, yêu cầu nhập name, nhập giá trị đúng cho xLocation,
yLocation, radius bắt buộc lớn hơn 0
Kết luận: Pass
7. Test case 7: Kiểm chứng chức năng tìm đường ngắn nhất
Tiền điều kiện: Ứng dụng webservice phục vụ cho hệ thống LBS đã đưa vào trạng thái
sẵn sàng hoạt động. Người kiểm chứng đang mở ứng dụng webserivce sẵn sàng thực
thi. Chọn phương thức GetShortPath để sẵn sàng hoạt động.
Dữ liệu nhập:
- xBegin= 21.0307387
- yBegin=105.853022
- xEnd=21.0307761
- yEnd=105.8526973
Thứ tự thực hiện:
- Nhập liệu xBegin vào ô nhập liệu xBegin
- Nhập liêu yBegin vào ô nhập liệu yBegin
- Nhập liệu xEnd vào ô nhập liệu xEnd
- Nhập liệu yEnd vào ô nhập liệu yEnd
- Nhấn Invoke để thực hiện tìm đường đi ngắn nhất giữa hai điểm
Hình ảnh minh họa:
Kết quả: Chương trình trả về danh sách các điểm cần phải đi qua.
Kết qua mong muốn: Chương trình trả về danh sách các điểm phải đi qua
Kết luận: Pass
11.2 Kiểm chứng phần Client
1. Test case 1: Kết nối với webserivce ở tầng server để lấy dữ liệu hình
ảnh và hiển thị hình ảnh bản đồ
Tiền điều kiện: Ứng dụng đã cài đặt vào thiết bị theo yêu cầu, thiết bị kết nối được vào
Internet
Dữ liệu kiểm chứng:
Không có
Các bước thực hiện:
Khởi chạy ứng dụng, đợi trong giây lát. Ứng dụng sẽ kết nối đến server để lấy dữ liệu
hình ảnh thông qua webservice
Kết quả: Hiển thị hình ảnh của bản đồ được lấy từ server thông qua webserivce
Kết quả mong đợi: Hiển thị hình ảnh của bản đồ lấy được từ server thông qua
webservice.
Kết luận: Pass
2. Testcase 2: Thực hiện di chuyển bản đồ.
Tiền điều kiện: Phải chạy qua được testcase 1.
Dữ liệu nhập
- Tọa độ mới sau khi di chuyển
Các bước thực hiện:
- Dùng style kéo rê bản đồ
Kết quả: Bản đồ di chuyển theo nét style kéo, đồng thời load lại những phần còn thiếu
của bản đồ đang thiếu
Kết quả mong đợi: Bản đồ di chuyển theo style, load lại hình ảnh của bản đồ đang
thiếu
Kết luận: Pass
3. Test case 3: Phóng to/ thu nhỏ bản đồ
Tiền điều kiện: Thực hiện được testcase 1.
Dữ liệu nhập:
- Độ zoom mới của bản đồ (từ 14- 17)
Các bước thực hiện:
- Đợi load xong bản đồ
- Thực hiện click vào biểu tượng phóng to/ thu nhỏ trên màn hình
Kết quả: Hình ảnh được phóng to/thu nhỏ tương ứng với độ zoom mới của bản đồ
Kết quả mong muốn: Hình ảnh bản đồ phóng to/ thu nhỏ tương ứng với độ zoom của
bản đồ
Kết luận: Pass
4. Test case 4: Phóng to/ thu nhỏ
Tiền điều kiện: Thực hiện qua được testcase 1
Dữ liệu nhập
- Độ zoom mới của bản đồ. Nhập ngoài vùng 14 – 17
Thứ tự thực hiện:
- Nhấn vào nút bấm phóng to/ thu nhỏ cho tới khi vượt ra khỏi biên ngoài độ
zoom 14- 17
Kết quả: Không thực hiện phóng to /thu nhỏ cho độ zoom trên
Kết quả mong đợi: Không thực hiện phóng to/thu nhỏ cho độ zoom trên
Kết luận: Pass
5. Test case 5: Kiểm chứng chức năng tìm con đường
Tiền điều kiện: Thỏa mãn điều kiện qua test case 1
Dữ liệu nhập:
- Name= Hung Vuong
- Radius= 1
Thứ tự thực hiện:
- Sau khi bản đồ đã được nạp thành công, từ menu chính của chương trình chọn
item “Find”
- Chương trình hiển thị hộp thoại tìm kiếm, check vào option tìm đường
- Nhập tên đường vào ô nhập liệu Name
- Chọn vùng bán kính tìm kiếm trong combobox radius
- Nhấn nút “Find” để thực hiện
Kết quả: Danh sách các con đường có chứa từ “Hung Vuong”
Kết quả mong muốn: Dánh sách các con đường có chữ Hung Vuong
Kết luân: Pass
6. Test case 6: Kiểm chứng khả năng chịu lỗi của chức năng tìm con
đường
Tiền điều kiên: Thực hiện qua được test case 1
Dữ liệu nhập
- Name= <Trống>
- Radius=1
Thứ tự thực hiện:
- Sau khi bản đồ đã được nạp thành công, từ menu chính của chương trình chọn
item Find
- Chương trình hiển thị hộp thoại tìm kiếm, check vào option tìm đường
- Không nhập dữ liệu vào ô nhập liệu Name
- Chọn vùng bán kính tìm kiếm trong combobox radius
- Nhấn nút Find để thực hiện
Kết quả: Chương trình báo lỗi, yêu cầu nhập tên con đường
Kết quả mong muốn: Yêu cầu nhập tên con đường
Kết luận: Pass
7. Test case 7: Kiểm chứng chức năng tìm đường đi ngắn nhất giữa 2
điểm
Tiền điều kiện: Thực hiện qua được test case 1
Dữ liệu nhập:
- xBegin=21.0307387
- yBegin=105.853022
- xEnd=21.0307761
- yEnd=105.8526973
Thứ tự thực hiện
- Click phải vào màn hình chính của chương trình Mobilocate, chọn item Start
here
- Di chuyển bản đồ đến một nơi nào đó, click phải chọn item End here
Kết quả: Đợi trong giây lát, chương trình sẽ vẽ đường đi giữa 2 điểm được chọn đó.
Nếu có đường đi chương trình sẽ vẽ những đường màu xanh, ngược lại sẽ vẽ một
đường thẳng từ điểm đầu đến điểm cuối màu đỏ
Kết quả mong đợi: Chương trình sẽ vẽ đường đi giữa 2 điểm được chọn đó. Nếu có
đường đi chương trình sẽ vẽ những đường màu xanh, ngược lại sẽ vẽ một đường thẳng
từ điểm đầu đến điểm cuối màu đỏ
Kết luận: Pass
11.3 Báo cáo kết quả kiểm chứng
1. Phần server :
o Có 7 testcase thành công
o Có 0 testcase thất bại
o Tổng cộng có 7 testcase
o Kết luận: 100% thành công
2. Phần client:
o Có 7 testcase thành công
o Có 0 testcase thất bại
o Tổng cộng có 7 testcase
o Kết luận: 100% thành công
Chương 12 TRIỂN KHAI
Chương 13 BẢO TRÌ
Chương 14 HƯỚNG PHÁT TRIỂN