我从其中一个论坛得到的代码,我试图获取客户端计算机(用户)的经纬度。
但它让我回到了一个不为人知的位置
我是否需要添加或更改此内容。
public string GetUserLocation()
{
string coords = "";
GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.Default);
watcher.Start();
GeoCoordinate coord = watcher.Position.Location;
if (!watcher.Position.Location.IsUnknown)
{
double lat = coord.Latitude;
double longi = coord.Longitude;
coords = lat + "," + longi;
}
else
{
return coords="Unknown latitude and longitude.";
}
return coords;
}
答案 0 :(得分:1)
您是否尝试watcher.TryStart
查看您的观察者是否正确初始化了?
bool started = watcher.TryStart(false, TimeSpan.FromMilliseconds(2000));
if (!started)
{
Console.WriteLine("GeoCoordinateWatcher timed out on start.");
}
的状态和权限
可以检查Status属性以确定数据是否可用。 如果数据可用,您可以从中获取一次该位置 定位属性,或通过处理接收连续的位置更新 PositionChanged事件。
“权限”,“状态”和“位置”属性支持 INotifyPropertyChanged,以便应用程序可以数据绑定到这些 属性。
这是检查权限的方法:
if (watcher.Permission == GeoPositionPermission.Granted)
{
// you have permission...
}
您可以See here查看状态。