Tải bản đầy đủ (.pdf) (157 trang)

xây dựng một ứng dụng bản đồtrên máy pocket pc 2002 (windows ce 3.0) cho phép hiển thịmột bản đồ điện tửvà cung cấp một số chức năng tìm kiếm thông tin

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.89 MB, 157 trang )





KHOA CNTT – ĐH KHTN




TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM



VÕ SỸ NAM – 9912616
ĐỖ LỆNH HÙNG SƠN – 9912064


XÂY DỰNG MỘT ỨNG DỤNG BẢN ĐỒ TRÊN
MÁY POCKET PC 2002 (WINDOWS CE 3.0)
CHO PHÉP HIỂN THỊ MỘT BẢN ĐỒ
ĐIỆN TỬ VÀ CUNG CẤP MỘT SỐ
CHỨC NĂNG TÌM KIẾM THÔNG TIN


LUẬN VĂN CỬ NHÂN TIN HỌC





GIÁO VIÊN HƯỚNG DẪN
TS. DƯƠNG ANH ĐỨC
LÊ THỤY ANH



TP. HCM, 2003





KHOA CNTT – ĐH KHTN
















KHOA CNTT – ĐH KHTN







NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN






























KHOA CNTT – ĐH KHTN





NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN































KHOA CNTT – ĐH KHTN





LỜI CÁM ƠN

Luận văn của chúng em sẽ rất khó hoàn thành nếu không có sự truyền đạt
kiến thức quí báu và sự hướng dẫn tận tình của Thầy Dương Anh Đức và thầy Lê
Thụy Anh. Chúng em xin chân thành cám ơn sự chỉ bảo của các thầy.
Chúng con xin gửi tất cả lòng biết ơn, sự kính trọng đến ông bà, cha mẹ,
cùng toàn thể gia đình, những người đã nuôi dạy, đã cho chúng con niềm tin và nghị
lực để vượt qua mọi khó khăn.
Chúng em xin trân trọng cám ơn quý Thầy cô trong Khoa Công nghệ thông
tin trường Đại học Khoa học Tự nhiên Tp.Hồ Chí Minh đã tận tình giảng dạy,
truyền đạt những kiến thức quý báu và tạo điều kiện cho chúng em được thực hiện

luận văn này.
Xin chân thành cám ơn sự giúp đỡ, động viên và chỉ bảo rất nhiệt tình của
các anh chị đi trước và tất cả bạn bè. Các anh chị, các bạn luôn có mặt trong những
thời điểm khó khăn nhất, tiếp thêm động lực và ý chí, giúp chúng tôi hoàn thành
được luận văn.
Mặc dù đã cố gắng nỗ lực hết sức mình, song chắc chắn luận văn không khỏi
còn nhiều thiếu sót. Chúng em rất mong nhận được sự thông cảm và chỉ bảo tận tình
của quý Thầy cô và các bạn.


Tp.HCM, 7/2003
Nhóm sinh viên thực hiện
Võ Sỹ Nam - Đỗ Lệnh Hùng Sơn






KHOA CNTT – ĐH KHTN




LỜI NÓI ĐẦU

Ngày nay, trong tất cả các lãnh vực của đời sống kinh tế, xã hội, công nghệ
thông tin được xem là một trong những ngành công nghệ mũi nhọn, đóng vai trò hết
sức quan trọng, có thể tạo ra những bước đột phá mạnh mẽ.
Công nghệ thông tin đang phát triển từng ngày, cả trong kĩ thuật phần cứng

lẫn lĩnh vực phần mềm. Kích thước cũng như khả năng của các thiết bị ngày càng
được cải thiện rất nhiều. Từ các máy tính có kích thước rất lớn như mainframe, hiện
nay, trên thế giới đã xuất hiện các loại thiết bị hỗ trợ cá nhân di động, gọi là PDA
(Personal Digital Assistant), hết sức nhỏ gọn và tiện lợi, đặc biệt đối với những
người có nhu cầu di chuyển nhiều. Các thiết bị thông minh, không dây và thuận tiện
này đang ngày càng khẳng định vị trí của mình với những đặc tính của nó.
Pocket PC là một dạng thiết bị PDA rất phổ biến và đang được sử dụng rộng
rãi trên thế giới với nhiều tiện lợi và các phần mềm hữu ích. Trên môi trường này,
đã có rất nhiều ứng dụng được phát triển với mục đích hỗ trợ tối đa người sử dụng
thường xuyên phải di chuyển nhiều, như sổ tay điện tử, xem phim, nghe nhạc, bản
đồ du lịch điện tử
Tại thị trường Việt Nam, Pocket PC cũng đang ngày càng trở nên thông dụng
hơn. Trong bối cảnh Việt Nam chuẩn bị đăng cai Đại hội Thể thao Đông Nam Á
(SEA Games) lần thứ 22, chúng em nhận thấy việc cho ra đời một ứng dụng bản đồ
điện tử trên Pocket PC là hết sức cần thiết, tại Việt Nam nói chung và Tp.Hồ Chí
Minh nói riêng.
Với ý tưởng trên, chúng em đã tập trung thực hiện đề tài “XÂY DỰNG
MỘT ỨNG DỤNG BẢN ĐỒ TRÊN MÁY POCKET PC 2002 (WINDOWS CE
3.0) CHO PHÉP HIỂN THỊ MỘT BẢN ĐỒ ĐIỆN TỬ VÀ CUNG CẤP MỘT
SỐ CHỨC NĂNG TÌM KIẾM THÔNG TIN” và đã xây dựng ứng dụng với dữ
liệu là bản đồ Tp.Hồ Chí Minh.






KHOA CNTT – ĐH KHTN






Nội dung của luận văn được chia làm 7 chương:
Chương 1: Mở đầu giới thiệu chung về đề tài, ý nghĩa và các mục tiêu của
đề tài; trình bày các giải pháp và hướng nghiên cứu đã được thực hiện trong và
ngoài nước.
Chương 2: Tổng quan về Pocket PC và Windows CE 3.0 giới thiệu tổng
quan về Pocket PC và Windows CE 3.0, môi trường sẽ sử dụng ứng dụng bản đồ.
Chương này cũng giới thiệu về khả năng lập trình trên Pocket PC 2002 và Hệ điều
hành nhúng Windows CE 3.0.
Chương 3: Các vấn đề khi xây dựng ứng dụng bản đồ trên Pocket PC
trình bày các vấn đề liên quan trực tiếp đến việc xây dựng một ứng dụng bản đồ
điện tử trên Pocket PC 2002 (Windows CE 3.0) như hạn chế về tốc độ tính toán,
hiển thị, vấn đề lưu trữ trên Pocket PC.
Chương 4: Các giải pháp cho ứng dụng bản đồ trên Pocket PC giới thiệu
và phân tích các giải pháp thực hiện đối với việc xây dựng ứng dụng bản đồ điện tử
trên Pocket PC như hiển thị, tìm kiếm, giải pháp tiếng Việt.
Chương 5: Tổ chức dữ liệu bản đồ trên Pocket PC trình bày về dữ liệu
nguồn và các vấn đề liên quan tới phương diện tổ chức lưu trữ thông tin và dữ liệu
Pocket PC. Các giải thuật để xây dựng và tổ chức lại dữ liệu từ dữ liệu nguồn cũng
được giới thiệu trong chương này.
Chương 6: Ứng dụng Pocket Map giới thiệu về ứng dụng bản đồ điện tử
Tp.Hồ Chí Minh trên Pocket PC 2002, mô tả các khảo sát hiện trạng, đặc tả yêu cầu
và các phân tích thiết kế cho một số chức năng chính của ứng dụng. Chương này
cũng giới thiệu giao diện và cách sử dụng của một số chức năng chính của ứng
dụng.
Chương 7: Tổng kết tóm tắt lại các vấn đề đã được đặt ra trong luận văn,
cách giải quyết, kết quả đạt được và đề ra một số hướng phát triển trong tương lai.






KHOA CNTT – ĐH KHTN





MỤC LỤC


Danh sách hình i

Danh sách bảng iii
Một số khái niệm và thuật ngữ v
Chương 1 : Mở đầu 1
1.1 GIS, các ứng dụng và giải pháp về GIS 1
1.2 Ứng dụng GIS trên Pocket PC 2
1.3 Các giải thuật nghiên cứu về GIS 3
1.4 Mục tiêu của đề tài 3
Chương 2 : Tổng quan về Pocket PC và Windows CE 3.0 5
2.1 Giới thiệu về các thiết bị PDA 5
2.2 Tổng quan về Windows CE 6
2.3 Tổng quan về Pocket PC 7
2.4 Khả năng lập trình trên Pocket PC và Windows CE 3.0 8
Chương 3 : Một số vấn đề khi xây dựng ứng dụng bản đồ trên
Pocket PC 20


3.1 Khả năng tính toán của Pocket PC 20
3.2 Tốc độ và các hỗ trợ khả năng hiển thị 21
3.3 Khả năng và hình thức lưu trữ 25
3.4 Cấp phát bộ nhớ 28
3.5 Tương tác giữa người sử dụng và thiết bị 29
Chương 4 : Các giải pháp cho ứng dụng bản đồ trên Pocket PC . 31
4.1 Yêu cầu chung 31
4.2 Vấn đề tối ưu tốc độ hiển thị 31
4.3 Tìm đường đi ngắn nhất 38





KHOA CNTT – ĐH KHTN




4.4 Tìm kiếm thông tin phi không gian 42
4.5 Giải pháp tiếng Việt trên môi trường Pocket PC 45
Chương 5 : Tổ chức dữ liệu bản đồ trên Pocket PC 54
5.1 Dữ liệu nguồn 54
5.2 Mối liên hệ giữa các file .MNT, .SHP và .DBF 60
5.3 Tổ chức lại dữ liệu 61
5.4 Xây dựng dữ liệu Topology 72
Chương 6 : Ứng dụng PocketMap 78
6.1 Khảo sát hiện trạng 78
6.2 Phân tích và xác định yêu cầu 79
6.3 Đặc tả Use Case 81

6.4 Sơ đồ lớp Class Diagram 89
6.5 Mô tả các lớp 91
6.6 Các lưu đồ hoạt động 102
6.7 Thiết kế màn hình 116
6.8 Cài đặt và thử nghiệm 123
6.9 Hướng dẫn sử dụng 125
Chương 7 : Tổng kết 133
7.1 Kết luận 133
7.2 Hướng phát triển 134
Tài liệu tham khảo 136
Phụ lục 139






KHOA CNTT – ĐH KHTN






Danh sách hình
Hình 2-1: Phân bố bộ nhớ trong Windows CE 14
Hình 4-1: Đoạn thẳng giao vùng nhìn 33
Hình 4-2: Cung giao vùng nhìn 34
Hình 4-3: Lưu đồ vẽ đối tượng 38
Hình 5-1: Liên hệ giữa cung và điểm 57

Hình 5-2: Liên hệ giữa đường và cung 57
Hình 5-3: Đường bao quận/huyện 64
Hình 6-1: UseCase tìm kiếm đường 81
Hình 6-2: Usecase Tìm kiếm địa điểm 83
Hình 6-3: Tìm đường đi ngắn nhất 85
Hình 6-4: Usecase Tìm kiếm quận/huyện 87
Hình 6-5: Sơ đồ tổng quát 89
Hình 6-6: Sơ đồ lớp dữ liệu 89
Hình 6-7: Sơ đồ lớp vẽ 90
Hình 6-8: Sơ đồ lớp sự kiện 90
Hình 6-9: Lớp dữ liệu đường 92
Hình 6-10: Lớp GraphData 94
Hình 6-11: Lớp DistrictData 96
Hình 6-12: Lớp PlaceData 97
Hình 6-13: Lớp RoadView 98
Hình 6-14: Lớp DistrictView 99
Hình 6-15: Lớp PlaceView 100
Hình 6-16: Lớp DragEvent 100
Hình 6-17: Lớp DetailEvent 101
Hình 6-18: Lớp ShortestPathEvent 101
Hình 6-19: Lớp ZoomEvent 102
i




KHOA CNTT – ĐH KHTN






Hình 6-20: Sequence Diagram: Hiển thị bản đồ 102
Hình 6-21: Collaboration Diagram: Hiển thị bản đồ 103
Hình 6-22: Sequence Diagram: Tìm các đường giao nhau 104
Hình 6-23: Collaboration Diagram: Tìm các đường giao nhau 105
Hình 6-24: Sequence Diagram: Tìm giao lộ 106
Hình 6-25: Collaboration Diagram: Tìm giao lộ 107
Hình 6-26: Sequence Diagram: Tìm đường đi ngắn nhất 108
Hình 6-27: Collaboration Diagram: Tìm đường đi ngắn nhất 109
Hình 6-28: Sequence Diagram: Tìm địa điểm 109
Hình 6-29: Collaboration Diagram: Tìm địa điểm 110
Hình 6-30: Sequence Diagram: Tìm con đường 111
Hình 6-31: Collaboration Diagram: Tìm con đường 112
Hình 6-32: Sequence Diagram: Dịch chuyển vùng nhìn 113
Hình 6-33: Collaboration Diagram: Dịch chuyển vùng nhìn 114
Hình 6-34: Sequence Diagram: Tỉ lệ lại bản đồ 115
Hình 6-35: Collaboration Diagram: Tỉ lệ lại bản đồ 115
Hình 6-36: Màn hình chính 116
Hình 6-37: Menu chính 116
Hình 6-38: Nút bấm đặc biệt 117
Hình 6-39: Màn hình tìm thông tin 119
Hình 6-40: Màn hình tên thông tin 120
Hình 6-41: Màn hình thông tin chi tiết 120
Hình 6-42: Màn hình tìm đường đi ngắn nhất 121
Hình 6-43: Màn hình sử dụng chính 126
Hình 6-44: Màn hình tìm thông tin 127
Hình 6-45: Màn hình tìm đường đi ngắn nhất 129
Hình 6-46: Màn hình tìm đường đi ngắn nhất 130
Hình 6-47: Màn hình tìm đường đi ngắn nhất 131

ii




KHOA CNTT – ĐH KHTN






Danh sách bảng
Bảng 2-1: Sự hỗ trợ của Windows CE 3.0 đối với các hàm thư viện C-
Runtime 12

Bảng 2-2: Các thư viện C-Runtime được hỗ trợ trên Windows CE 3.0 13
Bảng 3-1: Các tính năng GDI được hỗ trợ trên Windows CE 3.0 23
Bảng 3-2: Các hàm thuộc CWnd không được hỗ trợ trên Windows CE 24
Bảng 3-3: Các kiểu dữ liệu được hỗ trợ trên database của Windows CE 27
Bảng 4-1: Quy ước ký hiệu trong thuật toán tìm dường đi ngắn nhất 39
Bảng 4-2:Các khả năng khi sử dụng chuỗi hằng Unicode 53
Bảng 5-1: Header của file .MNT 55
Bảng 5-2: Header của file .DBF 58
Bảng 5-3: Header của file Shape 59
Bảng 5-4: Các loại mẫu tin của file Shape 60
Bảng 5-5: Cấu trúc mẫu tin dạng Point 60
Bảng 5-6: Chỉ số trong file .MNT và thứ tự mẫu tin trong file DBF 61
Bảng 5-7: Chỉ số trong file .SHP và thứ tự mẫu tin trong file DBF 61
Bảng 5-8: Dữ liệu DBF quận/huyện 63

Bảng 5-9: Cấu trúc file quận huyện 67
Bảng 5-10: File dữ liệu đường dạngDBF 67
Bảng 5-11: File dữ liệu đường 69
Bảng 5-12: File dữ liệu địa điểm DBF 69
Bảng 5-13: File dữ liệu địa điểm 70
Bảng 5-14: Giá trị đường một chiều 71
Bảng 6-1: Các chức năng chính 80
Bảng 6-2: Lớp MapData 91
Bảng 6-3: Lớp MapView 91
Bảng 6-4: Lớp MapEvent 91
iii




KHOA CNTT – ĐH KHTN





Bảng 6-5: Lớp RoadData 93
Bảng 6-6: Lớp RoadPath 93
Bảng 6-7: Lớp RoadArc 94
Bảng 6-8: Lớp GraphData 95
Bảng 6-9: Lớp Node 95
Bảng 6-10: Lớp DistrictData 96
Bảng 6-11: Lớp DistrictArea 97
Bảng 6-12:Lớp PlaceData 98
Bảng 6-13: Lớp Place 98

Bảng 6-14: Lớp DistrictView 99
Bảng 6-15: Lớp PlaceView 100
Bảng 6-16: Các nút bấm trên menu chính 117
Bảng 6-17: Bảng Menu 119
Bảng 6-18: Menu tìm thông tin 120
Bảng 6-19: Bảng các nút tìm đường đi ngắn nhất 122
Bảng 6-20: Kết qủa thử nghiệm trên máy ảo 124
Bảng 6-21: Kết qủa thử nghiệm trên máy thật 125
Bảng 6-22: Các menu tìm đốI tượng 128
Bảng 6-23: Các nút bấm tìm đường đi ngắn nhất 132

iv




KHOA CNTT – ĐH KHTN







Một số khái niệm và thuật ngữ

Khái niệm Định nghĩa Ghi chú
GIS
(Geography
Information System)

Hệ thống thông tin địa lý. Sử
dụng công nghệ này là một công
nghệ dựa trên máy tính để xây
dựng bản đồ, phân tích và xử lý
các đối tượng tồn tại và các sự
kiện xảy ra trên trái đất.

Thông tin
không gian
Thông tin về những đặc điểm liên
quan đến hình dạng, vị trí, quan
hệ của các đối tượng địa lý.
Bao gồm hai dạng:
• Dạng hình học:
mô tả các đặc
điểm hình dạng,
vị trí. Ví dụ như
tọa độ của điểm,
đường…
• Dạng Topology:
mô tả quan hệ
giữa các đối
tượng hình học.
Ví dụ như những
vùng nào kề với
một vùng xác
định.

v





KHOA CNTT – ĐH KHTN





Thông tin
phi không gian
(thông tin thuộc tính)
Thông tin về những đặc điểm liên
quan đến thống kê, thông tin số,
thông tin đặc trưng gán cho mỗi
thuộc tính của đối tượng
Ví dụ như tên đường
phố, dân số…
PDA
(Personal
Digital Assistant)
Thiết bị điện tử hỗ trợ cá nhân,
giúp người sử dụng lưu trữ các
thông tin cá nhân, công việc cần
thiết cũng như các phần mềm tối
thiểu trên một thiết bị nhỏ gọn

Pocket PC Khái niệm này có thể dùng để
chỉ:
• Hệ điều hành nhúng

Pocket PC do Microsoft
phát triển dựa trên nhân
của Hệ điều hành
Windows CE 3.0
• Các thiết bị PDA sử dụng
hệ điều hành Pocket PC

Palm-size Một dạng thiết bị cầm tay, sử
dụng Windows CE 2.21
Đang có khuynh hướng
bị Pocket PC thay thế
do có nguồn điện và
khả năng không tốt
Handheld PC Một dạng thiết bị cầm tay, sử
dụng Windows CE 2.21
Có kích thước lớn hơn
Pocket PC
Palm OS Hệ điều hành nhúng do Palm phát
triển, sử dụng trên các thiết bị
cầm tay
Là một trong những hệ
điều hành nhúng phổ
biến nhất hiện nay, có
khả năng chạy nhanh
hơn hệ điều hành
vi





KHOA CNTT – ĐH KHTN





Pocket PC của hãng
Microsoft
EPOC

Hệ điều hành nhúng do Symbian
phát triển
Là một trong những hệ
điều hành nhúng phổ
biến nhất hiện nay
Embedded Linux Hệ điều hành nhúng phát triển
dựa trên nhân của Hệ điều hành
Linux trên Desktop


vii




KHOA CNTT – ĐH KHTN





Chương 1 :Mở đầu

Chương 1 : Mở đầu

1.1 GIS, các ứng dụng và giải pháp về GIS
GIS (Geography Information System ) là một công nghệ ra đời vào những
năm 60 của thế kỉ 20. Công nghệ GIS cho phép đáp ứng các nhu cầu liên quan tới
quản lý cũng như khai thác và sử dụng các thông tin, dữ liệu địa lý. Từ giai đoạn
đầu, được sử dụng trên các hệ thống máy tính lớn ở Mỹ và Canada, đến nay, công
nghệ GIS đã được áp dụng và triển khai hết sức rộng rãi trên phạm vi toàn thế giới,
trên những hệ thống máy PC và thời gian gần đây là trên cả các thiết bị PDA.
Một số ứng dụng GIS nổi tiếng trên thế giới hiện nay đang được ứng dụng
rộng rãi như MapInfo, Arc/Info, Spatial Database Engine (SDE), ArcView GIS :
được sử dụng với mục đích quản lý, tích hợp, quy hoạch và khai thác các dữ liệu
bản đồ.
Tại Việt Nam, công nghệ GIS cũng đã được nghiên cứu và có được một số
sản phẩm có kết quả đáng khích lệ. Thời gian gần đây, việc nghiên cứu công nghệ
GIS đã cho ra hàng loạt ứng dụng áp dụng trong thực tế tại Tp.Hồ Chí Minh, như
StreetFinder của DolSoft, hệ thống GIS trên website Ngân hàng bản đồ trực tuyến
của VDC, DMC, Dolsoft (www.basao.com.vn), hệ thống chỉ dẫn giao thông của
nhóm AMI Group - Đại học Khoa học Tự nhiên Tp.Hồ Chí Minh.
Các giải pháp về GIS thường được chia làm hai nhóm chính:
• Giải quyết các bài toán phức tạp liên quan đến mạng giao thông
Các bài toán như tìm kiếm đường đi tối ưu, điều phối lộ trình giao thông
thường được áp dụng trên các hệ thống máy tính lớn, có cấu hình mạnh.
• Hiển thị và tìm kiếm các thông tin bản đồ.
Đây là dạng ứng dụng bản đồ điện tử, cung cấp các khả năng cho phép người
sử dụng xem bản đồ và tìm kiếm một số thông tin cần thiết, thường được áp dụng
trên các máy tính thông thường và nhỏ.
1





KHOA CNTT – ĐH KHTN




Chương 1 :Mở đầu

1.2 Ứng dụng GIS trên Pocket PC
Sự phát triển mạnh mẽ của Internet, cũng như khả năng của công nghệ phần
cứng, đã dẫn đến sự ra đời của các thiết bị ứng dụng Internet. Theo các nhà nghiên
cứu thị trường, mặc dù PC vẫn giữ vai trò chủ yếu trong việc xử lý và hỗ trợ công
việc, nhưng các thiết bị Internet hay thiết bị hỗ trợ cá nhân sẽ ngày càng khẳng định
được vai trò của nó trên thị trường.
Ra đời vào những năm 90 của thế kỉ 20, Pocket PC là một dạng thiết bị cầm
tay PDA (Personal Digital Assistant) sử dụng hệ điều hành Pocket PC, một biến thể
của Windows CE, một hệ điều hành nhúng được Microsoft phát triển cho các thiết
bị không là PC (non-PC).
Do đặc trưng nhỏ gọn, được thiết kế với mục đích giúp người sử dụng lưu
trữ các thông tin cá nhân, công việc cần thiết cũng như các phần mềm tối thiểu trên
một thiết bị nhỏ gọn, và sử dụng một hệ điều hành họ hàng Windows, Pocket PC đã
được khá nhiều nhà sản xuất phần mềm quan tâm trong lĩnh vực phát triển ứng
dụng, trong đó có các ứng dụng GIS.
Tuy nhiên, Pocket PC chạy trên nền hệ điều hành nhúng Windows CE, hệ
điều hành chỉ cung cấp bộ nhớ một cách giới hạn cho các ứng dụng phát triển trên
nó. Vì vậy, các ứng dụng liên quan tới hệ thống GIS phát triển trên Pocket PC và hệ
điều hành Windows CE gặp phải các vấn đề về tối ưu hoá bộ nhớ cũng như tốc độ

và thường có tốc độ chậm hơn nhiều so với các ứng dụng trên PC thông thường.
Ngoài ra, do khả năng lưu trữ có giới hạn, việc ứng dụng GIS trên môi trường này
cũng gặp không ít khó khăn.
Trên thị trường, một số sản phẩm GIS trên Pocket PC đã được phổ biến rộng
rãi như Pocket Street của Microsoft, MapInPocket của Information Technologies
India Ltd
2




KHOA CNTT – ĐH KHTN




Chương 1 :Mở đầu
1.3 Các giải thuật nghiên cứu về GIS
Công nghệ GIS liên quan trực tiếp tới lý thuyết đồ thị cũng như trí tuệ nhân
tạo trong việc đưa ra các giải thuật để giải quyết các bài toán liên quan. Đây là
những lĩnh vực nghiên cứu được đầu tư rất nhiều với các cải tiến cũng như đã đưa
ra được nhiều giải thuật tốt hoặc tối ưu (chẳng hạn như các giải thuật clipping, kiểm
tra điểm trong/ngoài đa giác hay các giải thuật tìm kiếm trên cấu trúc dữ liệu hoặc
tìm kiếm lộ trình tối ưu )
Các bài toán về GIS hiện nay vẫn đang được nghiên cứu và có những cải tiến
rất tốt, kể cả trong các bài toán phức tạp.
1.4 Mục tiêu của đề tài
Hiện nay, một ứng dụng bản đồ điện tử tại Việt Nam nói chung, và Tp.Hồ
Chí Minh trên môi trường Pocket PC là rất cần thiết khi lượng khách du lịch từ
nước ngoài đến tham quan Việt Nam ngày càng tăng, cũng như sự phổ biến ngày

càng rộng rãi của Pocket PC tại Việt Nam. Với đặc tính nhỏ gọn và tiện lợi của nó,
Pocket PC đặc biệt thích hợp với dạng ứng dụng bản đồ điện tử hỗ trợ người dùng
xem bản đồ và tìm kiếm các thông tin cần thiết trong quá trình di chuyển.
Do vậy, từ nhu cầu nói trên, chúng em đã đầu tư xây dựng đề tài ““Xây dựng
một ứng dụng bản đồ trên Pocket PC 2002 (Windows CE 3.0) cho phép hiển thị
một bản đồ điện tử và cung cấp một số chức năng tìm kiếm thông tin”.
Đề tài phải giải quyết một số công việc chính:
• Nghiên cứu về Pocket PC 2002 và Hệ điều hành nhúng Windows CE
3.0 để thấy được sự khác biệt về trong mô hình với Windows trên Desktop, cũng
như làm rõ được khả năng lập trình trên môi trường này.
• Dựa vào những hiểu biết này, xem xét việc xây dựng một ứng dụng
bản đồ sẽ phải liên quan trực tiếp tới những vấn đề nào, sau đó, trình bày các giải
pháp thực hiện để xây dựng một ứng dụng bản đồ trên Pocket PC 2002.
• Triển khai vào một ứng dụng cụ thể là bản đồ Tp.Hồ Chí Minh. Ứng
dụng cho phép xem bản đồ Thành phố một cách trực quan, tìm kiếm các thông tin
3




KHOA CNTT – ĐH KHTN




Chương 1 :Mở đầu
liên quan đến đường phố, địa điểm (như bệnh viện, trường học ) với tốc độ truy
xuất, tìm kiếm thông tin có thể chấp nhận đối với người dùng. Ngoài ra, chúng em
cũng đã hỗ trợ thêm chức năng tìm kiếm lộ trình ngắn nhất giữa hai vị trí trên bản
đồ và một số biến thể của bài toán này là giải quyết việc tìm lộ trình ngắn nhất với

ràng buộc phải qua một số giao lộ, con đường hoặc phải tránh một số giao lộ, con
đường nào đó (vì nhiều lí do như kẹt xe, ngập lụt )
4




KHOA CNTT – ĐH KHTN




Chương 2 :Tổng quan về Pocket PC và Windows CE 3.0

Chương 2 : Tổng quan về Pocket PC
và Windows CE 3.0
2.1 Giới thiệu về các thiết bị PDA
Khoảng hai mươi năm trước, đã có một cuộc cách mạng về máy tính khi máy
tính IBM PC ra đời. Máy tính trở nên thông dụng với mọi người do không còn
mang kích thước quá lớn. Sau đó, máy tính xach tay (Laptop PC) xuất hiện, cho
phép người sử dụng dùng máy tính của mình ở khắp nơi, từ nhà đến văn phòng. Các
máy PC là những thiết bị tính toán với năng lực mạnh mẽ nhưng mềm dẻo, đã trở
nên hết sức thông dụng trên thị trường thế giới. Tuy nhiên, đang tồn tại một cuộc
cách mạng tiềm ẩn và hứa hẹn khác, đó là sự ra đời của các thiết bị tính toán, xử lý
di động hay còn gọi là thiết bị hỗ trợ cá nhân (PDA-Personal Digital Assistant).
Trong vài năm gần đây, các thiết bị dạng này đang ngày càng phổ biến. Tuy
nhiên, vào thời điểm ban đầu, mỗi thiết bị sử dụng hệ điều hành của riêng nó (các
phần mềm trên thiết bị có thể do các nhà cung cấp phần mềm độc lập, bán bản
quyền cho nhà cung cấp thiết bị ). Việc này đã dẫn đến sự phân chia thị trường của
các hệ điều hành cho thiết bị di động, hay còn gọi là hệ điều hành nhúng, ngăn cản

khả năng phát triển các ứng dụng nhúng một cách đồng loạt. Hiện nay, thị trường
cho các hệ điều hành nhúng đã bắt đầu có khuynh hướng thu hẹp lại với các hệ điều
hành có thị phần cao:
• Microsoft Windows CE, bao gồm cả biến thể Pocket PC của hệ điều
hành này
• Palm OS do Palm cung cấp
• EPOC của Symbian
• Embedded Linux, hệ điều hành ban đầu chỉ được phát triển cho máy
chủ và máy desktop
Trong đó, Pocket PC và Windows CE có ưu thế hơn do là một hệ điều hành
họ Windows, khá quen thuộc với người sử dụng lẫn lập trình viên.
5




KHOA CNTT – ĐH KHTN




Chương 2 :Tổng quan về Pocket PC và Windows CE 3.0
2.2 Tổng quan về Windows CE
Windows CE là một hệ điều hành nhúng do Microsoft phát triển, được tích
hợp vào các thiết bị giải trí, các máy subnotebook, máy tính cầm tay (handheld PC,
palm-size PC…), các điện thoại di động, hoặc những hệ thống thông tin và giải trí
trên xe hơi (AutoPC)…
Windows CE là hệ điều hành họ Windows, song được thiết kế cho các thiết
bị di động, nên có tính năng nhỏ gọn, đồng thời “có thể điều chỉnh” (modular) và dễ
chuyên biệt hóa để có thể thích ứng trong việc điều khiển nhiều hệ thống nhúng

khác nhau. Điều này có nghĩa là các kĩ sư có thể chọn lựa những phần nào của hệ
điều hành cần sử dụng, ví dụ như một thiết bị có thể không cần bàn phím hoặc màn
hình, nhưng có thể đòi hỏi sử dụng được mạng. Bằng cách chọn lựa những module
mà thiết bị cần, kích thước và giá thành của thiết bị có thể được giảm xuống.
Tuy nhiên, sự điều chỉnh này lại có thể là một khó khăn cho các nhà phát
triển ứng dụng, vì có thể Windows CE hỗ trợ một tính năng nào đó, nhưng thiết bị
nguồn được sử dụng lại không hỗ trợ.
Hiện thời, có khá nhiều sự lẫn lộn quanh các phiên bản của Windows CE
cũng như cách gọi tên. Sau đây là một vài phiên bản hiện thời của Windows CE:
• Windows CE 3.0: Phiên bản này được thiết kế để cung cấp các đặc
tính của một hệ điều hành thời gian thực và một số phát triển khác.
Thiết bị Pocket PC sử dụng một dạng biến thể phiên bản này.
• Windows CE 2.12: Được sử dụng chủ yếu bởi các nhà sản xuất thiết bị
nhúng dùng Microsoft Platform Builder. Phiên bản này không nhắm
tới các thiết bị cho người tiêu thụ cuối.
• Windows CE 2.21: Phiên bản của Windows CE dùng cho các thiết bị
Windows Handheld và Palm-size.

6




KHOA CNTT – ĐH KHTN




Chương 2 :Tổng quan về Pocket PC và Windows CE 3.0
2.3 Tổng quan về Pocket PC

Vào đầu năm 2000, Microsoft giới thiệu một phiên bản của hệ điều hành
Windows cho các thiết bị di động gọi là Pocket PC. Hệ điều hành Pocket PC là một
phiên bản của Windows CE 3.0, với các tính năng và giao diện được thiết kế riêng
cho các thiết bị hỗ trợ cá nhân (PDA – Personal Digital Assistant) và máy tính cầm
tay (handheld PC). Có thể hiểu Pocket PC là một phiên bản của Windows CE được
cài đặt nhằm tối ưu cho các thiết bị này. Phiên bản hiện đang được sử dụng rộng rãi
nhất là Pocket PC 2002.
Pocket PC giải quyết được nhiều thiếu sót đã làm giảm thành công của
Windows CE, như giao diện quá phức tạp, tốc độ chậm, khả năng lưu trữ kém,
nguồn cung cấp năng lượng không tốt…
Microsoft đã thêm các tính năng mới cho các thiết bị Pocket PC (Pocket PC –
device, những thiết bị PDA sử dụng hệ điều hành Pocket PC) với hệ điều hành
Pocket PC chứa phiên bản thu gọn của một số phần mềm như Internet Explorer,
Word, Excel, Outlook, Microsoft Reader, Windows Media Player…
Các thiết bị Pocket PC là một dạng thiết bị PDA, do nhiều hãng như
Compag, HP, Casio sản xuất. PocketPC sử dụng các chuẩn cắm công nghiệp, có
tính tương thích và mở rộng cao như có thể kết nối với máy tính để bàn, gắn thêm
storage card, modem kết nối Internet
Ghi chú:

Từ đây, trong luận văn, khi đề cập đến Pocket PC xin hiểu đây là thiết bị
Pocket PC chạy trên phiên bản hệ điều hành Pocket PC 2002, được phát triển trên
nhân hệ điều hành nhúng Windows CE 3.0. Ngoài ra, do là một biến thể của
Windows CE 3.0, nên khi đề cập tới các vấn đề liên quan như khả năng lập trình,
hạn chế về tốc độ, giải pháp của Windows CE… xin hiểu đó cũng là các vấn đề gặp
phải với Pocket PC.

7





KHOA CNTT – ĐH KHTN




Chương 2 :Tổng quan về Pocket PC và Windows CE 3.0
2.4 Khả năng lập trình trên Pocket PC và Windows CE 3.0
Trong phương diện lập trình, có nhiều điểm khác biệt từ lớn cho tới nhỏ giữa
Windows CE và phiên bản Windows trên Desktop.
Lý do gây ra sự khác biệt này là do Windows CE được xây dựng và thiết kế
từ kiến trúc nền sao cho nó có thể ở mức nhỏ nhất có thể. Windows CE bảo đảm 2
điều: các hàm được chọn lọc lại để sử dụng hoặc không hỗ trợ các hàm này nữa
(phụ thuộc vào yêu cầu xác định của thiết bị, như H/PC hay P/PC). Trong các hàm
được khai báo và cài đặt trùng nhau giữa Win32 API và các thư viện runtime của
ngôn ngữ lập trình (ví dụ: lstrlen/strlen, time/GetSystemTime…),
WinCE sẽ chỉ cung cấp và hỗ trợ một hàm.
Một thay đổi lớn về mặt cấu tạo là cách Win CE cung cấp các thư viện hệ
thống. Win CE không còn cung cấp nhiều thư viện khác nhau như GDI, Kernel và
User nữa, mà chỉ cung cấp duy nhất một thư viện coredll.lib. Thư viện này cung cấp
tất cả các hàm API cũng như nhiều hàm nội (internal) không được cung cấp tài liệu.
2.4.1 Các hàm Win32 API
Khoảng 3600 hàm Win32 API được hỗ trợ trong Windows NT và Windows
95/98, còn số hàm API mà Windows 2000 lớn hơn rất nhiều. Trong khi đó, phiên
bản 1.0 của WinCE chỉ hỗ trợ 500 trong số các hàm này, trong phiên bản 2.0( được
cấu hình cho H/PC và P/PC), số hàm này tăng gấp 3, khoảng 1500 hàm.
Các hàm của Windows CE sử dụng mô hình khai báo hàm cho các phiên bản
ANSI và UNICODE giống trên desktop. Dựa vào macro UNICODE, hệ điều hành
sẽ chọn khai báo hàm tương ứng khi biên dịch chương trình. Tuy nhiên, thực chất,

chỉ có phiên bản Unicode của các hàm API này được cài đặt, vì vậy, bất kì chương
trình nào được xây dựng nhằm mục đích sử dụng trong môi trường Windows CE
đều phải định nghĩa macro UNICODE.
Trong môi trường Windows CE, các ứng dụng dạng Win32 console không
được hỗ trợ. Mọi ứng dụng đều bắt buộc phải có hàm WinMain (thay cho
main()), trong đó, tham số dòng lệnh lpCmdLine là một chuỗi Unicode. Tuy
nhiên, ứng dụng không bắt buộc phải có vòng lặp xử lý thông điệp. Các ứng dụng
8




KHOA CNTT – ĐH KHTN




Chương 2 :Tổng quan về Pocket PC và Windows CE 3.0
dialog-based hoặc không có giao diện để người dùng tương tác vẫn làm việc bình
thường mà không cần vòng lặp này.
Một đặc điểm nữa khi lập trình trong Windows cần chú ý là các cửa sổ
chương trình trong Windows CE chỉ có thể ở một trong hai trạng thái: minimized
hay maximized. Vì vậy, Windows CE không còn hỗ trợ cho việc định lại kích cỡ
cửa sổ, có nghĩa là các thông điệp như WM_SIZING hay
WM_WINDOWPOSCHANGING hoặc biểu tượng Restore trên menu hệ thống cũng
không còn cần thiết
Cấu hình hệ thống cho chương trình trên Windows CE toàn bộ sử dụng
Registry như trên desktop, không sử dụng các biến môi trường hay các file INI. Mọi
chương trình đều phải sử dụng Registry, có cơ chế gần như tương tự với Registry
trên Windows- phiên bản desktop.

Vì một hay nhiều nguyên nhân, một số phần cơ bản trong Win32 API cũng
không được hỗ trợ. Các phần này bao gồm:
• Hook
• Generic, flat, and universal thunks
• Services and the event log
• Profiling (GetThreadTime và GetProcessTime)
• Bảo mật (SACLs, DACLs, …)

Từ phiên bản 2.1, Windows CE đã thêm vào một số hỗ trợ cho vấn đề mã hoá
(gọi là Cryptography API) cũng như hỗ trợ cho COM (CompChỉ mộtnt Object
Model)

2.4.2 Các hàm API và SDK phụ trợ
Các hàm này không nằm trong tập hợp các hàm được xem là cơ bản của
Win32. Trong khi Win32 hỗ trợ một số lượng khổng lồ các hàm SDK và API ngoại
vi, thì Windows CE chỉ hỗ trợ rất ít các hàm này.
Một số những tính năng quan trọng được Windows CE hỗ trợ như:
9

×