Khoa CNTT
Mt s vn đ khi phát trin ng dng GIS trên Pocket PC
Dng Anh c - Lê Thy Anh – Võ S Nam - Lnh Hùng Sn
Khoa Công Ngh Thông Tin
i hc Khoa hc T nhiên Thành ph H Chí Minh
E-mail:
; ;
;
Pocket PC là mt dng thit b cm tay giúp ngi s dng lu tr các
thông tin cá nhân, công vic cn thit cng nh các phn mm ti thiu trên mt
thit b nh gn. Pocket PC chy trên nn h điu hành nhúng Windows CE, h
điu hành đa nhim 32-bits ch cung cp b nh mt cách gii hn cho các ng
dng phát trin trên nó. Vì vy, các ng dng liên quan ti h thng thông tin đa
lý (Geography Information System – GIS) phát trin trên Pocket PC và h điu
hành Windows CE gp phi các vn đ v ti u hoá b nh cng nh tc đ ng
dng. Trong bài vit này, chúng tôi trình bày mt s vn đ khi xây dng ng
dng GIS trên Pocket PC và h điu hành Windows CE 3.0.
Some Issues of Developing GIS Applications on Pocket PC
Dng Anh c - Lê Thy Anh – Võ S Nam - Lnh Hùng Sn
Khoa Công Ngh Thông Tin
i hc Khoa hc T nhiên Thành ph H Chí Minh
E-mail: ; ;
;
Designed with mobile professionals in mind, Pocket PCs let users keep
their vital personal and business information up-to-date and close at hand.
PocketPC runs on embedded operating system Windows CE, which provides
limited memory to applications developed on it. Therefore, when developing
Geography Information System (GIS) applications on PocketPCs and Windows
CE, it is recommended that we optimize memory usage and enhance the speed of
these applications.
In this paper, we present some problems about building GIS applications on
Pocket PC and Windows CE 3.0.
Khoa CNTT
1 T VN
S phát trin mnh m ca Internet, cng nh kh nng ca công ngh phn
cng, đã dn đn s ra đi ca các thitb ng dng Internet. Theo các nhà nghiên
cu th trng, mc dù PC vn gi vai trò ch yu trong vic x lý và h tr công
vic, nhng các thit b Internet hay thit b h tr cá nhân s ngày càng khng
đnh đc vai trò ca nó trên th trng.
Ra đi vào nhng nm 90 ca th k 20, Pocket PC là mt dng thit b cm
tay PDA (Personal Digital Assistant) s dng h điu hành Pocket PC, mt bin
th ca Windows CE, mt h điu hành nhúng đc Microsoft phát trin cho các
thit b không là PC (non-PC).
Do đc trng nh gn, đc thit k vi mc đích giúp ngi s dng lu
tr các thông tin cá nhân, công vic cn thit cng nh các phn mm ti thiu
trên mt thit b nh gn, và s dng mt h điu hành h hàng Windows, Pocket
PC đã đc khá nhiu nhà snxut phn mm quan tâm trong lnh vc phát trin
ng dng, trong đó có các ng dng GIS.
Tuy nhiên, Pocket PC chy trên nn h điu hành nhúng Windows CE, h
điu hành ch cung cp b nh mt cách gii hn cho các ng dng phát trin trên
nó. Vì vy, các ng dng liên quan ti h thng GIS phát trin trên Pocket PC và
h điu hành Windows CE gp phi các vn đ v ti u hoá b nh cng nh tc
đ và thng có tc đ chm hn nhiu so vi các ng dng trên PC thông
thng. Ngoài ra, do kh nng lu tr có gii hn, vic ng dng GIS trên môi
trng này cng gp không ít khó khn.
2MT S KHÓ KHN KHI PHÁT TRIN NG DNG GIS TRÊN
POCKET PC
2.1 KH NNG TÍNH TOÁN CA POCKET PC
Pocket PC s dng mt loi CPU khác vi CPU thông thng. Máy Pocket
PC 2002 s dng CPU StrongARM hoc XScale ca Intel. Các CPU này đc
gi là các b x lý RISC (Reduced Instruction Set Computer) vì nó ch thc hin
Khoa CNTT
mt lnh trong mt chu kì CPU. (Mi chu kì CPU trong mt giây gi là 1 Hertz
hay 1 Hz). Máy PC thông thng ca chúng ta s dng b x lý CISC (Complex
Instruction Set Computer), đòi hi nhiu chu kì CPU đ x lý mt lnh xác đnh.
Do đó, các b x lý RISC nh StrongARM theo lý thuyt, có th tính toán lên ti
206 triu lnh mt giây nu nó x lý tc đ 206 Mhz.
Các b x lý StrongARM và XScale cng x lý các lnh 32bit, ging nh
PC thông thng. Tuy nhiên, li có mt khác bit ln trong vic x lý kích thc
lnh. B x lý CISC cho phép lnh có th có chiu dài bin đi, vì vy, nó phi
tính toán kích thc ca d liu cn đc khi x lý lnh. Trong kin trúc RISC, mi
lnh 32bit s có 32 d liu đi kèm. Vì vy, b x lý luôn bit đc phi đc bao
nhiêu d liu., đây là mt đim mnh ca kin trúc này.
rng ca bus cùng vi tc đ bus cng có mt nh hng ln đn tc đ
x lý và tính toán ca máy tính. rng ca bus ch ra s lng bit (hay byte) d
liu có th đc t / ghi lên RAM vào b vi x lý. Còn tc đ bus ch ra d liu có
th đc đc t RAM vào b vi x lý vi đ nhanh nh th nào. Ta có th hình
dung, đ rng bus nh s làn giao thông trên xa l, còn tc đ bus nh gii hn v
tc đ khi lu thông. Hin này, StrongARM và XScale s dng bus tc đ
100Mhz và thit k hin nay ca Pocket PC cho phép dùng bus 16bit. iu này có
ngha là tc đ bus ti đa là 200MB/giây.
Vn đ đt ra đây là nh vy, b vi x lý có th đt đc tc đ x lý bao
nhiêu. Do chúng ta cn đc 8bytes d liu trc khi x lý mt lnh, nên gi s
chúng ta có đc tc đ bus ti đa là 200MB/giây, thì thc s, b x lý ch thi
hành đc 25 triu lnh.
Ngoài ra, li có mt vn đ khác, đó là cache. Cache là mt loi RAM đc
bit đc cha bên trong CPU và x lý vi cùng tc đ ca CPU. Cache trong b
x lý StrongARM là 16K cho mã chng trình và 8K cho d liu, cache trong
XScale là 32K cho mã chng trình và 32K cho d liu. Nu d liu và mã
chng trình cn x lý đc cha trn trong cache, h thng s có th thi hành vi
tc đ tht ca CPU. Nh vy, tc đ ca ng dng có th đc thi hành s có th
Khoa CNTT
tng t 25 lên 206 triu lnh mt giây, tu theo chng trình và d liu có va vi
kích thc cache không. Tc đ ca h thng cng ph thuc vào ngun cung cp
nng lng, do đó, khi s dng Pocket PC, ta có th nhn thy s khác bit v tc
đ khi thc thi chng trình.
Bây gi, s dng các đ so sánh v hiu sut hot đng gia máy
DesktopPC và Pocket PC. Các h thng Desktop PC hin ti thng s dng bus
100-133 Mhz. Pentium IV có th s dng DDR RAM hoc RAM BUS (RD
RAM) có tc đ t 200-800Mhz. Vì vy, ch xét trên phung din RAM, nus
dng RAM 133Mhz, hiu sut Desktop PC đã tng 1/3 ln (25 lên 33 triu lnh
mt giây). Tc đ CPU ca Desktop cng ln hn rt nhiu khi hin ti đã đt ti
tc đ trên 3Ghz dn đn hiu sut toàn h thng cao hn.
Khi lp trình ng dng GIS trên Pocket PC, đc đim v b x lý cng nh
tc đ ca Pocket PC nh hng rt ln đn tc đ hin th, x lý cng nh tìm
kim thông tin GIS. gii quyt vn đ này, ta cn có nhng gii pháp phù hp
đ tng hiu nng ca ng dng, giúp ngi s dng có th s dng đc chng
trình vi tc đ chp nhn đc.
2.2 TC VÀ CÁC H TR KH NNG HIN TH
i vi các ng dng GIS, mt trong nhng vn đ quan trng nht cn
phi quan tâm, đó là h tr hin th ca môi trng.
Tng t trên môi trng Windows – phiên bn desktop, các đi tng trc
quan nh vn bn, đ ho đc GDI (Graphics Device Interface) điu khin. Vi
các hàm GDI này, ng dng có th v hoc hin th đng thng, đng cong, các
đng khép kín, vn bn và các bitmap. Màu và kiu ca các đi tng này da
trên các đi tng đ ho mà lp trình viên to ra và s dng.
GDI trên Windows CE cng s dng mt ng cnh thit b (device context )
đ lu tr d liu cn đc hin th trên thit b. Các đi tng đ ho đc lu
tr trong device context môi trng Windows CE bao gm mt bút v (pen) đ
v nét, chi v (brush) đ tô màu, font ch đ hin th ch, bitmap phc v cho
Khoa CNTT
vic sao chép hoc kéo, bng màu (palette) đ ch đnh màu v, và vùng clipping.
Windows CE h tr ng cnh thit b máy in (printer device context) ca máy in
đ v lên máy in, ng cnh thit b hin th (display device context) đ v lên thit
b video, ng cnh b nh (memory device context ) đ v lên b nh.
Khi xây dng ng dng GIS trên Pocket PC, cn chú ý ti vic ch đc s
dng các tính nng GDI đc h tr trên môi trng này. Danh sách các tính nng
đc h tr đc lit kê trong bng sau.
Tính nng GDI Mô t
Font Raster và TrueType Các font True Type có th kéo giãn hoc quay
đc.
H tr sn 7 font Raster trong ROM.
Windows CE ch h tr mt loi font, c raster ln
TrueType trên 1 loi thit b xác đnh
Bng màu H tr các đ sâu màu 1, 2, 4, 8, 16, 24, và 32 bits
per pixel (bpp). Mt bpp depth of 2 is unique to
Windows CE.
Các hàm dch khi bit và thao
tác theo vch
Cho phép quay, đnh c và ni các bitmap
Enables you to transform and combine bitmaps
Pen và brush H tr các loi dashed, wide, và solid pen, patterne
d
brush
In H tr in n đ ho (graphics printing)
Con tr H tr đy đ v con tr, bao gm c con tr do
ngi dùng đnh ngha.
Các thao tác v hình (Shape
drawing)
H tr v ellipse, polygon, rectangle, và roun
d
rectangle
Bng 1: Các tính nng GDI đc h tr trên Windows CE 3.0
Khoa CNTT
Ta nhn thy, do cn phi thu gn kin trúc cng nh các h tr nhm mc
đích ti u tc đ cho các thit b nhúng có tài nguyên gii hn, Windows CE đã
ch cung cp mt cách gii hn các tính nng ca GDI.
Windows CE GDI không h tr các đc tính:
• Thay đi to đ không gian, nh SetMapMode, GetMapMode,
SetViewportExt, và SetWindowExt. Ta đ không gian s tng ng vi
không gian ca thit b.
• Các hàm World Transform API
• Các hàm MoveTo và LineTo
• Con tr có màu sc, con tr đng (animated)
Và điu này cng là mt trong nhng lí do dn đn các th vin đ ho ca
MFC cng không h tr rt nhiu hàm liên quan ti vn đ hin th. Th nhìn qua
các hàm không đc h tr hoc h tr nhng có thay đi ca CWnd, lp đi
tng hin th chun ca MFC, trên môi trng Windows CE 3.0, ta đã thy rt
nhiu tính nng quan trng cn phi s dng trong ng dng GIS không đc h
tr, mt khó khn ln trong quá trình xây dng ng dng GIS.
ArrangeIconicWindows OnDeviceChange OnNcRButtonDown
CancelToolTips OnDevModeChange OnNcRButtonUp
ChangeClipboardChain OnDrawClipboard OnPaintClipboard
CreateCaret OnDropFiles OnPaletteIsChanging
CreateGrayCaret OnDSCNotify OnParentNotify
DlgDirList OnEndSession OnQueryDragIcon
DlgDirListComboBox OnEnterIdle OnQueryEndSession
DlgDirSelect OnEnterMenuLoop OnQueryNewPalette
DlgDirSelectComboBox OnExitMenuLoop OnQueryOpen
DragAcceptFiles OnGetMinMaxInfo OnRButtonDblClk
DrawMenuBar OnHScrollClipboard OnRButtonDown
EnableScrollBar OnIconEraseBkgnd OnRButtonUp
EnableToolTips OnInitMenu OnRegisteredMouseWheel
Khoa CNTT
FilterToolTipMessage OnMButtonDblClk OnSetCursor
FlashWindow OnMButtonDown OnSizeClipboard
GetClipboardViewer OnMButtonUp OnSizing
GetDCEx OnMDIActivate OnSpoolerStatus
GetDSCCursor OnMenuSelect OnStyleChanging
GetLastActivePopup OnMouseActivate OnSysColorChange
GetSystemMenu OnMouseWheel OnTimeChange
GetUpdateRgn OnMoving OnToolHitTest
GetWindowContextHelpIdOnNcActivate OnVScrollClipboard
GetWindowPlacement OnNcCalcSize OnWindowPosChanging
GetWindowRgn OnNcCreate SetClipboardViewer
HiliteMenuItem OnNcHitTest SetMenu
InvalidateRgn OnNcLButtonDblClk SetWindowContextHelpId
IsZoomed OnNcLButtonDown SetWindowPlacement
LockWindowUpdate OnNcLButtonUp SetWindowRgn
OnActivateApp OnNcMButtonDblClkShowOwnedPopups
OnAskCbFormatName OnNcMButtonDown ShowScrollBar
OnChangeCbChain OnNcMButtonUp UnockWindowUpdate
OnChildActivate OnNcMouseMove ValidateRgn
OnCompacting OnNcPaint
OnContextMenu OnNcRButtonDblClk
Bng 2: Các hàm thuc CWnd không đc h tr trên Windows CE
2.3 KH NNG VÀ HÌNH THC LU TR
Các Pocket PC chuyên dng có ROM ít nht là 12MB, RAM ít nht là
16MB. Các Pocket PC thông thng có ROM ít nht là 8MB, RAM ít nht là
8MB, thông thng là khong 32-64MB. Tuy nhiên, yêu cu v dung lng ca
RAM và ROM tu thuc vào loi CPU s dng, nhng thành phn mà nhà sn
xut h tr trên Pocket PC và tu thuc vào loi Pocket PC.
Do hn ch v ngun nng lng pin và kích thc ca thit b, Pocket PC
không s dng các thit b lu tr nh đa cng hay đa mm mà nó s dng mt
c ch gi là B lu tr đi tng (Object store). Object store là mt vùng RAM
đc ngi dùng đnh ngha, dùng đ lu tr các tp tin, các thông tin registry và
các database (gi là Object Store dng Storage). Vùng RAM còn li dùng làm b
Khoa CNTT
nh cho các chng trình đc thc thi (gi là Object Store dng Program).
Object store lu các thông tin di mt dng do h điu hành quy đnh, khác vi
trên Desktop và vn lu gi đc thông tin ca các ng dng và d liu ngay c
khi nng lng cung cp chính b mt nh ngun pin d tr. Có th xem Object
Store nh là đa cng trên thit b dùng Windows CE vì các end-user không bit
v Object Store do Microsoft đã cung cp trình WinCE Explorer đ đc ni dung
ca nó (tng t nh Microsoft Windows Expoler đ đc ni dung ca đa cng
trên máy desktop PC)
im khác bit ch yu mà ta cn lu ý là object store trên Windows CE là
vic thiu các kí t đa. Windows CE s dng các th mc di th mc gc
cho vic cài đt các thit b ca ngi dùng. Ví d, nu ngi dùng gn mt flash
card vào máy, Windows CE s to ra mt th mc /Storage Card 1. C mi flash
card đc gn vào, con s này s tng lên (/Storage Card 2,…)
ng dn ti tp tin đc gii hn bi MAX_PATH (có th dài ti đa 260
kí t, ging nh trên Windows) Tuy nhiên, trên Windows CE không có khái nim
th mc hin hành, ta phi truy xut các tp tin bng các đng dn dy đ ca nó.
Trên Windows CE 2.0, các tp tin có kích thc ti đa là 4MB và s lng
ti đa trong object store là 65535. Trên Windows CE 3.0, kích thc ti đa cho
mt tp tin là 32MB, s lng ti đa đi tng lu tr trong object store là gn
4.000.000.
Do b nh ca thit b gii hn, và phi chia x làm hai phn Object Store
dng Storage và dng Program, nên các ng dng luôn phi tính toán sao cho s
dng ti u Object Store, không s dng quá nhiu Object Store dng Storage,
song không đc vì lí do này mà lúc np chng trình thc thi, li s dng quá
nhiu Object Store dng Program.
2.4 CP PHÁT B NH
i vi ng dng GIS, mt vn đ thng gp là phi cp phát b nh
nhiu ln. Vic s dng d tha hay sai sót trong cp phát, gii phóng b nh có
Khoa CNTT
th đ li hu qu rt nghiêm trng, đc bit là khi s lng đnh ca đ th là rt
ln. Trên môi trng Pocket PC, vic đ li nhng vùng nh d tha s làm chm
toàn b h thng, đng thi xy ra nhng li rt nghiêm trng, do dung lng b
nh không nhiu.
Windows CE s dng các hàm API liên quan ti b nh o đ cp phát b
nh cho vùng heap và stack. im li ca s dng b nh o là b nh o không
phân mnh: Windows CE luôn cp phát mt s nguyên các trang. Vì Windows CE
qun lý b nh o theo các khi 64KB, do đó khi chng trình không s dng ht
vùng nh 64KB thì nên dùng mt vùng nh heap đ tránh lãng phí.
2.4.1 CÁC C CH S DNG B NH
• Local Heap
Heap là mt vùng không gian b nh o d tr mà Windows CE qun lý đ
cp phát cho chng trình. Kích thc ca heap khong 4bytes hay 8bytes, tùy
thuc loi CPU
• Separate Heap
Thay vì tng thêm kích thc heap cc b, ta nên to mt vài vùng heap
nh nhm tng tính hiu qu.
• Stack
Stack là mt vùng nh lu tr cho các bin đc tham chiu trong mt hàm.
Windows CE cp phát b nh cho mt bin t stack và thu hi b nh sau khi hàm
hoàn tt. Khi mt tin trình hay tiu trình bt đu, Windows CE cp phát mt trang
b nh stack cho tiu trình đó. Mi tiu trình có mt stack và mi stack có mt
vùng 2KB cui cùng đ điu khin tràn stack.
• Static data block
Khi d liu tnh (Static data block) là mt khi nh mà Windows CE dành
cho chng trình. Khi này cha chui, buffer, và các giá tr tnh khác mà chng
trình s dng trong sut quá trình thc thi. Ta có th gim kích thc ca các khi
d liu bng cách khai báo d liu trong phn read/write vi khai báo const.
Khoa CNTT
2.4.2 NHN BIT TÌNH TRNG THIU B NH
Cho dù cp phát b nh hiu qu th nào và chng trình có s dng b
nh RAM hiu qu th nào, thit b Pocket PC vn có th b thiu b nh. mc
đ lp trình, ta có th bit đc tình trng thiu b nh theo nhng cách sau:
• Hàm Virtual Alloc tr v 0, cho bit cp phát không thành công
• LocalAlloc hoc HeapAlloc tr v 0, cho bit vic tng kích thc vùng
heap không thành công
• Windows CE tr v mt li stack cho chng trình, cho bit cp phát
stack không thành công.
• Khi mt chng trình có yêu cu cp phát b nh, Windows CE kim
tra và lc yêu cu, nhm tránh vic s dng tt c b nh có sn cho
mt cp phát ln. Khi Windows CE bc vào tình trng thiu b nh,
nó s gim gii hn b nh ti đa cho chng trình
• Windows CE gi thông đip WM_HIBERNATION ti các ng dng
nhm thông báo tình trng thiu b nh.
2.5 TNG TÁC GIA NGI S DNG VÀ THIT B
Ngi s dng tng tác vi thit b thông qua mt màn hình touch-screen
LCD (màn hình cm nhn). Không s dng bàn phím (keyboard) và chut
(mouse) thông thng, Pocket PC h tr nhp liu thông qua mt bàn phím logic,
gi là SIP (Soft Input Panel). Bàn phím logic này thc cht là mt khung ca s
luôn tn ti trên màn hình, mô t và sp xp các phím tng t trên máy PC thông
thng. Ngi dùng s giao tip vi SIP thông qua ngón tay hoc stylus (mt cây
vit vt lý, cho phép nhp liu bng cách vit trc tip lên màn hình)
Thay th cho vic nhn Enter hay nhn đúp chut, Pocket PC s dng c
ch single-tapping (nhn đn) lên touch screen. Ngi dùng ch cn nhn mt ln
lên mt đi tng hoc liên kt, h điu hành s m đi tng/liên kt tng ng.
Khoa CNTT
Ngoài ra, đ giao tip vi ng dng, ngi dùng có th nhn-và-gi (tap-
and-hold). ây là c ch có tác dng tng t nh vic s dng context-menu
bng cách nhn phi chut trên PC. Khi ngi dùng nhn-và-gi trên mt đi
tng, có th mt menu hoc mt tooltip s hin ra, tu theo đi tng đó x lý
nh th nào.
Trong ng dng GIS, ta nhn thy vic nghiên cu và x lý các cách tng
tác trên là rt cn thit, bi trong dng ng dng này, vic di chuyn, phóng to, thu
nh, tra cu bn đ là nhng hành đng rt thng xuyên xy ra. Bên cnh đó,
phi đnh ngha li trong ng dng các hardware keys (phím vt lý) nhm tn dng
các phím di chuyn sn có ca thit b Pocket PC nhm tng tc đ tng tác cho
ngi dùng khi xem bn đ.
3T CHC LU TR D LIU GIS TRÊN POCKET PC
Các ng dng liên quan ti h thng thông tin đa lý (Geography
Information System – GIS) phát trin trên Pocket PC và h điu hành Windows
CE gp phi các vn đ v ti u hoá b nh cng nh tc đ ng dng do nhng
vn đ đã trình bày phn trên. Khi đa ra các gii pháp cho ng dng bn đ trên
Pocket PC, cn phi
• Bo đm vic t chc lu tr thông tin và d liu ti u trên Object
Store dng Program
• Bo đm lu tr ít nht thông tin có th trên Object Store dng Storage
• Bo đm đc tc đ khi x lý tính toán đ hin th và tìm kim, tra cu
thông tin.
đây, chúng tôi xin phép trình bày mt s vn đ liên quan đn t chc lu
tr thông tin GIS đã đc th nghim đi vi d liu bn đ TPHCM đc s hoá
t phn mm Smart Map Editor ([ 3]). D liu bn đ ngun bao gm các file
dng vn bn có cu trúc (text), các file dng nh phân có cu trúc (DBF, SHP).
Các d liu ngun này mô t thông tin ca các đi tng trên bn đ, c th nh
sau:
Khoa CNTT
• Các file dng vn bn có cu trúc, phn m rng (.MNT) mô t thông tin
không gian nh vector ca các con đng, các đng biên ca các
qun…
• Các file c s d liu DBF, lu gi thông tin mô t ph cho các file
.MNT và các file .SHP. Tùy thuc vào file .MNT hay .SHP mà các file
DBF có s trng (field) và giá tr d liu khác nhau.
• Các file dng SHP lu tr thông tin vector ca các đa đim. Tên đa
đim đc lu trong các file .DBF
3.1 LU TR D LIU KHÔNG GIAN
3.1.1 T CHC D LIU QUN/HUYN
D liu ngun qun huyn đc lu tr trong các file .MNT và.DBF
Bng mô t cu trúc file qun/huyn(DBF)
STT Tên trng Ý ngha
1ID ch s ca qun/huyn
2 NAME Tên qun/huyn
3 COLOR Màu ca qun huyn
Bng 3-1: D liu DBF qun/huyn
File .MNT cu trúc qun/huyn đc quy c nh sau
PathCount (đã đc đ cp trong cu trúc file .MNT)
S PathCount = S qun huyn + 1
Vi các Arc có Path=0 (đây là đng bao)
Vi các Arc có Path > 0 (đây là đng ch qun huyn)
Có bao nhiêu qun huyn thì có by nhiêu Arc có Path > 0 tng ng
Khoa CNTT
Hình 3-1: ng bao qun/huyn
Nh vy qun/huyn ch xác đnh đc nh vào đng ch qun huyn
(Path>0), còn đng ranh gii (đng bao) ca qun/huyn thì không đc xác
đnh. Ta ch có th v đc đng ranh gii qun/huyn mà không bit đc các
cung nào thuc qun huyn nào. Vic tip theo ta cn làm là xác đnh xem cung
nào thuc qun huyn nào
Ý tng nh sau:
Mi cung có Path=0 s thuc ít nht là mt qun và nhiu nht là hai qun.
Vì vy ta đánh du xem cung thuc nhng qun nào
Da vào các cung đã đc đánh du, ta xây dng li các đng ranh gii
qun/huyn
Lu đ vic đánh du qun huyn cho các cung
Gi cung đang xét là arc
Gi danh sách các cung là arrArc
Gi arcCur là cung đang xét trong danh sách arrArc
Loang cung đang xét arc ra mi hng
Ti các hng
B0: arcCur=0
Khoa CNTT
B1: Nu arc tip xúc vi arcCur qua B2
Ngc li qua B3
B2: Nu arcCur có Path > 0
đánh du qun cho arc
B3: Nu arcCur là cung cui cùng trong arrArc qua B4
Tng arcCur
Qua B1
B4: Kt thúc
Kt thúc lu đ: cung đã đc đánh du qun/huyn
Lu đ xây dng li đng ranh gii cho 1 qun/huyn
Gi qun/huyn đang xét là d
Gi các cung đang xét là arrCandidate
Gi các cung ca qun là arrGoal
Gi cung tìm thy là arcFound
Gi node là đnh đang xét
Gi arcCur là cung đang xét trong arrCandidate
B0: Ly các cung có đánh du qun là d đa vào arrCandidate
arrGoal =[]
arcFound=0
node=nh th 2 ca cung arcFound
B1: a cung arcFound trong arrCandidate vào arrGoal
arrGoal=arrGoal + [ arcFound ]
Xóa cung arcFound ra khi arrCandidate
arrCandidate= arrCandidate – arcFound
B2: arcFound= - 1
arcCur=0
B3: Nu arcCur có 1 đnh = node
node= đnh còn li ca arcCur
Khoa CNTT
arcFound=arcCur
Qua bc 1
Ngc li qua B4
B4: Nu arcCur là cung cui cùng trong arrCandidate qua B5
Ngc li qua B3
B5: Kt thúc
Kt thúc lu đ: Các cung ca qun đã đc sp th t liên tc trong danh
sách arrGoal
Sau khi đã xác đnh đc ranh gii qun huyn ta tin hành lu thông tin
các qun/huyn lên file .
Cu trúc file nh sau
Trng KiuGiá tr Ý ngha
UnicodeFormat long FFFE ây là file dng Unicode
Kiu file long Kiu file ây là file qun/huyn
MBR float MBR Hình cha nht bao
S qunIntS qunS qun
Tip theo là thông tin tng qun
Màu Int Màu Màu ca qun
MBR Float MBR Hình ch nht bao ca qun
XFloatX
YFloatY
im điu khin đ xut tên
qun
S đimIntS đimS đim ca đng ranh gii
Chiu dài tên Int Chiu dài tên Chiu dài tên qun
Tên TCHAR* Tên Tên qun
Tip theo là danh sách các đim
XfloatX
YfloatY
im ranh gii
Khoa CNTT
Bng 3-2: Cu trúc file qun huyn
3.1.2 T CHC D LIU NG
D liu qun huyn đc lu tr trong các file .MNT và .DBF
Bng mô t cu trúc file qun/huyn (DBF)
STT Tên trng Ý ngha
1 ROAD_NAME Tên đng
2 LENGTH Chiu dài đng
3 DAI_LO ây là đi l
4 LOGIOIVE Kích thc đng
Bng 3-3: File d liu đng dngDBF
File .MNT cu trúc qun/huyn đc quy c nh sau:
PathCount (đã đc đ cp trong cu trúc file .MNT)
S PathCount = S đng
Khoa CNTT
Ta s t chc lu tr li d liu lên file
Trng KiuGiá tr Ý ngha
UnicodeFormat long FFFE ây là file dng Unicode
Kiu file long Kiu file ây là file đng
MBR float[4] MBR Hình ch nht bao
S cung int S cung S cung
S đimintS đimS đim
S đ rng int S đ rng S đ rng
S đng int S đng S đng
Tip theo là danh sách các đ rng
rng int rng rng
Tip theo là danh sách các đim
XfloatX
YfloatY
To đ đim
Tip theo là danh sách các cung
MBR float[4] MBR Hình ch nht bao
Node1 int Node1 im bt đu
Node2 int Node2 im kt thúc
PathID int PathID cung này thuc đng có
PathID
Hng unsigned
char
Hng Hng ca đng (1 chiu
hoc 2 chiu + chiu đi)
Sô đim ph int S đim ph S đim ph đ v cung
Tip theo là danh sách đnh ph
XfloatX
YfloatY
To đ đnh ph
Tip theo là thông tin các con đng
MBR float[4] MBR Hình ch nht bao ca con
Khoa CNTT
đng
Chiu dài tên unsigned
char
Chiu dài tên Chiu dài tên đng
Tên đng TCHAR* Tên đng Tên con đng
rng int rng rng ca con đng
S nhánh int S nhánh S nhánh đng
S cung int S cung S cung ca đng
Tip theo là danh sách các cung
Bng 3-4: File d liu đng
3.1.3 T CHC D LIU A IM
D liu qun huyn đc lu tr trong các file .SHP và.DBF
Bng mô t cu trúc file đa đim (DBF)
STT Tên trng Ý ngha
1ID Ch s ca đa đim
2 NAME Tên đa đim
Bng 3-5: File d liu đa đim DBF
a đim trong d liu ngun cha đc phân loi c th. Mi loi đa đim
s đc lu trên các file riêng r. Ví d nh các thông tin v trng hc s đc
lu trong TruongHoc.SHP và TruongHoc.DBF. Do đó vi d liu ngun ta cn
phân loi li đa đim đ lu chúng vào trong mt tp tin.
Cu trúc file đa đim nh sau:
Trng KiuGiá tr Ý ngha
UnicodeFormat long FFFE ây là file dng Unicode
Kiu file long Kiu file ây là file đa đim
Danh sách tên phân loi đa đim
Chiu dài unsigned char Chiu dài Chiu dài tên
Tên TCHAR* Tên Tên phân loi
Khoa CNTT
Tip theo là danh sách tên ca tt c các đa đim
Chiu dài unsigned char Chiu dài Chiu dài tên
Tên TCHAR* Tên Tên đa đim
Tip theo là danh sách tt c các to đ ca đa đim
XfloatX
YfloatY
To đ đa đim
Bng 3-6: File d liu đa đim
3.2 LU TR D LIU PHI KHÔNG GIAN
Tìm kim thông tin phi không gian liên quan trc tip ti vic s dng các
cu trúc d liu thích hp đ lu tr và biu din các thông tin cn thit. Nu so
sánh, thì có th nói vic tìm kim thông tin này tng đi ging vi vic tra cu
ngha ca mt t trong t đin. Tuy nhiên, khác vi t đin, đi vi mt ng dng
GIS, mt s thông tin cn tìm kim, hoc có th đã đc lu tr sn, hoc cng có
th đc phát sinh ti thi đim tra cu. iu này dn đn vic phi tính toán nên
chn la hình thc cung cp thông tin nào (lu tr trc hoc phát sinh ti thi
đim tra cu). Sau đó, da vào hình thc này mi quyt đnh cu trúc d liu thích
hp đ biu din trong ng dng. Vic chn la này đc bit quan trng trong môi
trng Windows CE, vi tài nguyên và tc đ x lý chm.
Xem xét trên mt s thông tin ph tiêu biu đây, liên quan đn đng, bao
gm: tng chiu dài con đng, đng này giao vi nhng đng nào, đng này
thuc qun nào theo hai phng án
3.2.1 LU TR THÔNG TIN TRÊN OBJECT STORE
Các thông tin ph có th đc lu tr trong Object Store trc khi thc thi
ng dng. Theo đó, đ gii quyt vn đ, s phi qua các bc sau:
• Nhn thông tin tra cu t ngi s dng
• Tra cu đ tìm v trí thông tin tng ng da trên mt ID duy nht
• Truy xut Object Store đ cung cp cho ngi s dng
Khoa CNTT
Do Object Store là c ch s dng b nh RAM, nên vic tra cu này nu
da trên các đi tng file hoc database có cu trúc rõ ràng và d tra cu thì chi
phí thi gian b ra không đáng k so vi c ch tìm kim trên b nh ngoài trên
môi trung Windows desktop. Tuy nhiên, ta s phi tn thêm mt vùng nh
Object Store cho các thông tin cn đc lu tr sn, trong khi kh nng lu tr ca
Pocket PC b hn ch.
3.2.2 TÍNH TOÁN TI THI IM TRA CU
Các thông tin cn tra cu s đc tính toán, kt xut t các thông tin khác
liên quan đã đc lu tr trc đó. Ví d, chiu dài con đng s bng tng chiu
dài ca các cung và cung con thuc con đng y. tính toán đc giá tr cn
thit, phi s dng các phép toán so sánh đi vi tt c các cung tnti trong đ
th đ tìm các cung thuc con đng tra cu, sau đó là phép cng s thc đ ra
đc chiu dài.
3.2.3 NHN XÉT
Có hai vn đ đây: th nht, nu tính chiu dài cho tt c các con đng, s phép
tính là rt ln. Tuy nhiên, đây, ch cn thit tính chiu dài ca mt con đng
đang đc tra cu, vì vy có th chp nhn đc; th hai, các thông tin liên quan
đn quá trình tra cu đã đc to lp trc trong quá trình np d liu hin th cho
bn đ t các d liu cn thit. Nói cách khác, các thông tin này đã đc biu din
trc đó theo mt cu trúc đnh sn trong b nh, có ngha là không cn tn thêm
không gian Object Store đ lu tr. Nh vy, tt nht là áp dng và phi hp c
hai phng pháp này đ ti u hoá ng dng.
4KT LUN
Bài vit đã trình bày mt s vn đ khó khn chính mà các nhà phát trin
gp phi trong quá trình xây dng ng dng GIS trên môi trng Pocket PC. Ta
d dàng nhn thy rng, do cn phi bo đm đc tính nh gn cng nh ti thiu
hoá các module h tr ca hđiu hành đi vi thit b, Pocket PC có nhiu hn
Khoa CNTT
ch v nhiu mt, trong đó đc bit là vn đ v b nh, GDI và tc đ x lý tính
toán.
Vic kho sát và xác đnh các vn đ hn ch trên Pocket PC đóng vai trò
rt quan trng trong quá trình xây dng ng dng GIS trên môi trng này. Da
vào các kho sát này, các nhà phát trin mi có thđa ra nhng gii pháp thích
hp đ gii quyt các vn đ v ti u hoá b nh cng nh tc đ ng dng do
hn ch ca môi trng.
Chúng tôi cng đã trình bày mt s vn đ v t chc lu tr thông tin trên
Pocket PC. ây là vn đ đóng vai trò rt quan trng trong quá trình xây dng ng
dng GIS trên môi trng này, do nu t chc không tt s gây chm toàn b h
thng, đng thi xy ra nhng li rt nghiêm trng, do dung lng b nh không
nhiu.
Chúng tôi đã th nghim các bin pháp t chc lu tr thông tin nh đã
trình bày trên và đã đt đc kt qu khá tt đi vi d liu bn đ TP.HCM (tt
c thông tin đc lu tr trong các tp tin vi tng kích thc khong 300KB).
Hng phát trin sp ti, s s dng phng pháp t chc d liu này b
sung thêm các thông tin hin th và tìm kim các tuyn giao thông công cng nh
xe buýt, tàu đin ngm ây là mt nhu cu rt thc t và có kh nng ng dng
cao.
cd
Tài liu tham kho
Tài liu vit:
[ 1] Hoàng Kim (ch biên)- Dng Anh c- Lê ình Duy- V Hi Quân, C s
đ ho máy tính, 2001
[ 2] Nick Grattan - Marshall Brain, Windows CE 3.0 Application Programming,
Prentice Hall PTR, 2000
Khoa CNTT
[3] Lê Thy Anh- inh Bá Tin, Xây dng h thng ch dn giao thông, Lun vn
c nhân tin hc, i hc Khoa hc T nhiên Tp.H Chí Minh, 2000
[ 4] Jason P.Nottingham – Steven Makofsky – Andrew Tucker- Teach Yourself
Windows CE Programming in 24 hours- SAMS – 2001
[5]ESRI,ESRI Shapefile Technical Description, July 1998
[ 6] Robin Wilson, Introduction to Graph Theory, Fourth Edition, Oliver & Boyd,
1996
[ 7] Microsoft, Microsoft eMbedded Visual C++ Guide
[ 8] Microsoft, Microsoft Developer Network, 4-2003
Website:
[ 9] Chris De Herrera's Windows CE Site,
/>[ 10] Pocket PC Developer Network,
[ 11] Windows CE Developers FAQ, />[ 12] GeoCommunity handheld, />[ 13] The CodeProject eMbedded and Mobile, />[ 14] The Codeguru Sites, />[ 15] Network of Windows CE,
[ 16] Microsoft Embedded homepage,
/>[ 17] Field Software Homepage,
[ 18] IconToday,