地理定位器挂在WP8上,工作在8.1?

时间:2014-06-21 21:57:13

标签: c# windows-phone-8 geolocation

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.");
            }
        }

2 个答案:

答案 0 :(得分:0)

我在使用后台跟踪的WP8上遇到了问题,它只会在应用程序被购买到前台时更新位置。非常混乱,因为我知道它在没有问题的情况下在其他设备上工作。

最后我完全卸载了应用程序并重新安装,这解决了这个问题。万一你还没有尝试过 - 只需完全删除应用程序并使用Visual Studio重新安装/重新部署。问题可能会自行解决。

答案 1 :(得分:0)

我遇到了同样的问题。相同的代码适用于8.1但不适用于8.0

当我通过单击按钮而不是Page的构造函数或在Page_loaded事件中调用函数时,我能够使它工作。