Geolocator似乎根本不适用于WP8。 (但由于一些奇怪的原因,8.1的工作完全正常)...我处于最佳状态 - LTE,FiOS Wifi ......没有障碍物。没理由它不应该工作。但是,它似乎只是挂起,永远不会返回当前位置甚至是一个例外。
我试图禁用反向地理编码,但它不起作用。我已将其缩小为获得该位置的实际服务(Geolocator或GeoPosition)
启用ID_CAP_LOCATION。电话位置服务已启用。我的目标是WP8。
代码:
private async void getlocation()
{
try
{
Geolocator gl = new Geolocator(); gl.DesiredAccuracyInMeters = 50;
Geoposition geoposition = await gl.GetGeopositionAsync(maximumAge: TimeSpan.FromMinutes(5), timeout: TimeSpan.FromSeconds(60));
latitude = geoposition.Coordinate.Latitude.ToString(); longitude = geoposition.Coordinate.Longitude.ToString();
//Location to physical address
List<MapLocation> locations;
ReverseGeocodeQuery query = new ReverseGeocodeQuery();
query.GeoCoordinate = new GeoCoordinate(geoposition.Coordinate.Latitude, geoposition.Coordinate.Longitude);
//Set address to tecxtblock
query.QueryCompleted += (s, e) =>
{
locations = e.Result as List<MapLocation>;
address = locations[0].Information.Address.City.ToString();
ts.Center = new GeoCoordinate(geoposition.Coordinate.Latitude, geoposition.Coordinate.Longitude);
ts.ZoomLevel = 7;
location.Text = address.ToUpper(); //Location
//Successful, now get weather for current location
getforecast();
};
query.QueryAsync();
}
catch
{
MessageBox.Show("Location services appear to be turned off. To use Atmosphere, turn location services on.");
}
}
答案 0 :(得分:0)
我在使用后台跟踪的WP8上遇到了问题,它只会在应用程序被购买到前台时更新位置。非常混乱,因为我知道它在没有问题的情况下在其他设备上工作。
最后我完全卸载了应用程序并重新安装,这解决了这个问题。万一你还没有尝试过 - 只需完全删除应用程序并使用Visual Studio重新安装/重新部署。问题可能会自行解决。
答案 1 :(得分:0)
我遇到了同样的问题。相同的代码适用于8.1但不适用于8.0
当我通过单击按钮而不是Page的构造函数或在Page_loaded事件中调用函数时,我能够使它工作。