地理定位器挂在 WP8 上,在 8.1 上工作?
Posted
技术标签:
【中文标题】地理定位器挂在 WP8 上,在 8.1 上工作?【英文标题】:Geolocator hanging on WP8, working on 8.1? 【发布时间】:2014-06-21 21:57:12 【问题描述】: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.");
【问题讨论】:
【参考方案1】:我在 WP8 上遇到了后台跟踪问题,它只会在应用被购买到前台时更新位置。非常令人困惑,因为我知道它可以在其他设备上正常工作。
最后我只是完全卸载应用程序并重新安装,这解决了问题。以防万一您还没有尝试过 - 只需完全删除应用程序并使用 Visual Studio 重新安装/重新部署。问题可能会自行解决。
【讨论】:
【参考方案2】:我遇到了同样的问题。相同的代码在 8.1 中有效,但在 8.0 中无效
当我通过按钮单击而不是 Page 的构造函数或在 Page_loaded 事件中调用函数时,我能够使其工作。
【讨论】:
以上是关于地理定位器挂在 WP8 上,在 8.1 上工作?的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows Phone 8.1 上获取给定 CivicAddress 的坐标/地理点