Dan*_*est 5 c# wpf gps triangulation
我的技能水平:初学者
代码:C#(wpf)
硬件:戴尔Venue 11 Pro平板电脑(Windows 8.1)
我想通过坐标(纬度/经度)中的蜂窝三角测量来获取我的计算机的当前位置.使用以下链接作为参考(在Windows Phone 7上获取GPS坐标),我一直在尝试从Windows位置服务中提取纬度/经度坐标.我已经验证Windows位置服务是通过单元塔三角测量接收坐标,但每次运行以下代码时,坐标都会被列为"NaN".这里的任何帮助将不胜感激.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Device.Location;
namespace GPS
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.Default);
public MainWindow()
{
InitializeComponent();
watcher.Start();
LocationMessage();
}
private void LocationMessage()
{
var whereat = watcher.Position.Location;
var Lat = whereat.Latitude.ToString("0.000000");
var Lon = whereat.Longitude.ToString("0.000000");
//optional parameters for future use
whereat.Altitude.ToString();
whereat.HorizontalAccuracy.ToString();
whereat.VerticalAccuracy.ToString();
whereat.Course.ToString();
whereat.Speed.ToString();
MessageBox.Show(string.Format("Lat: {0}\nLon: {1}",Lat,Lon));
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您只需要一次当前位置,并且不需要在移动时连续更新,则可以替换Start为TryStart:
if (watcher.TryStart(false, TimeSpan.FromSeconds(3)))
{
LocationMessage();
}
else
{
// Position not found after 3 seconds...
}
Run Code Online (Sandbox Code Playgroud)
请记住,此方法同步返回,因此最好不要在 UI 线程上运行。
| 归档时间: |
|
| 查看次数: |
7230 次 |
| 最近记录: |