[WPF] GeoSense 來做到wifi location

2010/08/04

第一次使用iPod Touch 我打開地圖,說真的,那時候覺得超酷..

照片

因為iPoad Touch 並沒有提供GPS 服務,網路上查一下…
他是使用wifi location ,這東西超酷,利用基地台地理位置做出定位…



前一陣子因為專案需求,我大概找了一下這功能,其實我發現使用.net framework 4
做到這件事情其實變得很簡單..(大心…



首先您得先去這裡下載GeoSense(地理位置感應器) (這樣翻譯好嗎?!抓頭) ..


GeoSense


他的定位原理是啥,他官網上面有寫到…

We employ thousands of pigeons around the world to stalk our users with the promise of breadcrumbs.
我看到這大笑了一聲…
他當然是開玩笑的…至於他定位方式他也沒多提,簡單說就是根據附近的基地台加上一些定位技術…
當然這些數學跟物理問題就不是我們要煩惱的…
請記住安裝完之後…請到控制台…
把他給啟用…

sshot-6

sshot-7

之後建議你重開機…
之後就可以來寫程式拉….
不管你是寫傳統winform 或是 WPF …
請注意選擇使用.net framework 4.0
sshot-8

接下來我介紹一下版面配置…

sshot-2

我設計這案例是 點擊案按鈕之後會把經緯度 放到 lblShowLocation 的 Label 中..

之後會引入Google Map 顯示現在的wifi 定位的位置…

畢竟只有經緯度出來會很沒有感覺…

專案一開始記得你先得 using System.Device.Location;
要先引用System.Device.dll
sshot-9

之後btnGetLocation點擊後程式碼如下…


private void btnGetLocation_Click(object sender, RoutedEventArgs e)
{
   var locationWathcer = new GeoCoordinateWatcher();

   locationWathcer.TryStart(true, TimeSpan.FromMilliseconds(1000));
   GeoCoordinate location = locationWathcer.Position.Location;

   this.lblShowLocation.Content =  location.Latitude+ "," +location.Longitude ;

   this.wbMap.Navigate("http://maps.google.com/?ll=" + this.lblShowLocation.Content);

}



完成後應該會如下… 果然定到位置了…


sshot-10



很酷吧…


請注意以下幾件事情…

1.Windows 7 限定

2..Net framework 4.0 限定

3.如果有人在查你的位置,譬如老婆啊,要小心…XD
4.如果您有.net framework 3.5 要使用的需求,可以留言給我,我可以提供範例
   如果你是要整合到Silverlight 跟Bing Map 結合也可以留言給我,教學紀錄文能不繁瑣就先不說到這麼繁瑣…




 讚一下:




範例下載: 


0 意見:

程式 . 生活 . D小調.@2010 | Binary Design: One Winged Angel.