Windows phone 8 JumpStart-地圖及定位

  • 3310
  • 0

Windows phone 8 JumpStart-地圖及定位

前言:

朵拉今天要介紹WP8 JumpStart 的範例--地圖定位。範例使用Bing Map。

以下是這個範例的學習重點:

1. 認識 Windows Phone Runtime Location API

2. 如何拿到phone現在的位置?

3. 如何讓定位追蹤持續進行?

4. 如何讓定位追蹤在背景執行?

5. 創建一個新的地圖控制項。

6. 設定地圖的顯示和縮放。

補充資料:

How to get the phone's current location for Windows Phone 8

關於MapView 屬性的完整介紹可以參考 : Maps and navigation for Windows Phone 8

小提醒:

在 app manifest內要記得 included " ID_CAP_LOCATION ",否則會因為沒有權限使用,而有例外發生唷! 

UnauthorizedAccessException

Demo 1: Get Phone Position and Location Emulator

BasicLocationandMap 範例 : 學習如何拿到phone現在位置。

clip_image001

按下定位按鈕:

註記:

決定位置data的精確度: DesiredAccuracy

非同步的方式拿取現在所在位置 GetGeopositionAsync 參數一 可以設定位置的有效期限(maximumAge)而且透過參數二設定,直到timeout,才進行下次抓取資料。

大家可以參考下一個範例LocationTracker 範例中的Geolocator for position change,每次位置有變更的時候就抓取資料,所以呀,利用此範例非同步的方式定時抓取資料才能省電唷!

Demo 4: Map Control & Demo 5 : Pushpin

LocationTracker 範例 : 學習如何讓定位追蹤持續進行?(一旦位置改變就抓資料)

流程:

clip_image002

clip_image003

按下追蹤按鈕:

clip_image004

位置改變事件:

註記:

1. SystemTray+ProgressIndicator : 用來顯示系統當前狀態

2. GeoCoordinateEx : 此class定義在GeoCoordinateExtensions.cs

畫pushpin:

註記:

在wp8沒有pushpin object 但可以自行畫UIElement在MapOverlay上 然後在MapLayer上給定位置。

clip_image005

clip_image006 clip_image007 clip_image008clip_image009clip_image010

道路 天線 混合 地形 深色

註記:

1. 設定map顯示模式

2. Map.CartographicMode

3. Map.ColorMode

Demo 2: Tracking Phone Position & Demo 3: Background Location Tracking

BackgroundLocationTracker 範例: 學習如何使定位追蹤在背景執行。並且當位置改變時,send toast提醒使用者。

註冊app在背景執行:

註記:

1. 在App.xaml內註冊Application_RunningInBackground事件

2. 需要一個方法告訴app現在是否在背景執行:

註記:

在App.xaml.cs內宣告一個bool,以後就透過這個值判斷

程式執行中。非在背景執行,所以持續更新UI

clip_image011clip_image012

使用者離開此程式,但未reset(並未關閉此程式),可以透過長按返回鍵看是否仍在。因為仍在背景執行,一旦感測到位置有改變,send toast告知使用者。

clip_image013

位置改變事件:

註記:

設定map畫面跳轉時的動畫效果。

MapAnimationKind

SetView()可以定義MapView屬性

1. Center: 給定中心點的Geoposition

2. ZoomLevel: 地圖顯示倍數

3. Heading: 方位

4. Pitch: 仰視角

5. BoundingRectangle: a LocationRectangle object that contains the Map control

6. AnimationKind: 地圖轉換的動畫效果

補充 :

Fast app resume

如果非FAR程式,跳至page2,那麼page2是back鍵內的唯一page,則按下back鍵之後會退出程式。

但在FAR的程式中,跳至page2,但因為BackStack內存有mainpage,所以當運行新程序,按下back鍵,則會以mainpage的程序退出。

流程:

clip_image014

 

最後:

WP8的地圖控制官方範例:Simple Map control sample

有關WP8 JumpStart詳細課程內容都可以上Windows Phone Developer Blog唷。

如有任何問題、錯誤,可在下面留言,謝謝您的指教。