[Silverlight] 當麻許的Phone7筆記 - 18.定位服務(Location Service)
2011/02/08
今天來寫一篇很有趣的東西..
跟上一篇 地圖控制項(Microsoft.Phone.Controls.Maps) 有些關係,如果配合使用會很好玩…
目前手機上面有很多LBS(Location-Based Service) 的服務,像是foursquare
其中不外乎最重要的功能就是在手持裝置上面取得user的所在位置…
在Windows Phone 7 中是否可以做到呢?!
是的,而且並不難…
介紹一下版面配置:
按下 btnLocateMe 之後 會將目前手機的所在地定位出來,並且將經緯度顯示在txtLocation 之中..
其中我們會使用到 GeoCoordinateWatcher 類別,此類別會提供目前位置提供者提供的座標位置資料
定位方法包含GPS 還有wifi 三角定位,不過別擔心這些東西我們不需要去詳細知道底層,我們只要很溫馨的拿來用就好了..
首先記得先
using System.Device.Location;
來直接看一下C# Code :
using System.Device.Location; using System.Windows; using Microsoft.Phone.Controls; using Microsoft.Phone.Controls.Maps; namespace LocationService { public partial class MainPage : PhoneApplicationPage { // Constructor public MainPage() { InitializeComponent(); } GeoCoordinateWatcher geoCoordinateWatcher = new GeoCoordinateWatcher(); private void btnLocateMe_Click(object sender, RoutedEventArgs e) { //當位置改變時驅動的事件時驅動 geoCoordinateWatcher.PositionChanged +=geoCoordinateWatcher_PositionChanged; //起始從目前位置提供者取得資料的作業。 這個方法會啟用 PositionChanged 事件並且允許存取 Position 屬性。 geoCoordinateWatcher.Start(); } void geoCoordinateWatcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e) { var myLayer = new MapLayer(); //將地圖插入一個MapLayer myMap.Children.Add(myLayer); Pushpin ppHeeyuki = new Pushpin(); //在MapLayer加入pin並且標記位置 myLayer.AddChild(ppHeeyuki, new GeoCoordinate(e.Position.Location.Latitude, e.Position.Location.Longitude)); //將標記位置設成地圖中央 this.myMap.SetView(new GeoCoordinate(e.Position.Location.Latitude, e.Position.Location.Longitude), 16); // Latitude 緯度, Longitude 經度 this.txtLocation.Text = e.Position.Location.Latitude + "," + e.Position.Location.Longitude; } } }
關於地圖加入Pushpin(標示點) 還有顯示經緯度可以參考 地圖控制項(Microsoft.Phone.Controls.Maps)
範例結果:
讚一下:
範例下載:
標籤:
Silverlight,
Windows Phone 7
|
This entry was posted on 凌晨1:03
and is filed under
Silverlight
,
Windows Phone 7
.
You can follow any responses to this entry through
the RSS 2.0 feed.
You can leave a response,
or trackback from your own site.
訂閱:
張貼留言 (Atom)
0 意見:
張貼留言