Geoposition花费了大量时间Windows Phone 8

时间:2015-07-29 23:39:53

标签: c# windows-phone-8 geolocation

我有以下代码,它可以在模拟器上正常工作。它得到了一个虚假的位置,即雷德蒙德的微软位置,但速度很快。我在Windows Phone 8.1设备上部署了相同的代码,Geopostion系列需要5分钟才能获得经度和纬度。有没有办法让纬度和经度更快,就像在这里过境说得到你的位置,但它的快速。请帮忙,让我知道我做错了什么。

 Geolocator locator = new Geolocator();
                locator.DesiredAccuracy = PositionAccuracy.High;
                Geoposition position = await locator.GetGeopositionAsync();

                latitude = position.Coordinate.Latitude;
                longitude = position.Coordinate.Longitude;

1 个答案:

答案 0 :(得分:0)

你可以解决这个“太长时间以获得当前位置”,用这个:

        geolocator = new Geolocator();
        geolocator.DesiredAccuracy = PositionAccuracy.High;
        geolocator.ReportInterval = 2000;
        geolocator.PositionChanged += geolocator_PositionChanged;


    private void geolocator_PositionChanged(Geolocator sender, PositionChangedEventArgs args)
    {
        Dispatcher.BeginInvoke(() =>
        {
            if (args.Position != null && args.Position.Coordinate.ToGeoCoordinate() != myPosition)
            {
                if(args.Position.Coordinate.Accuracy <= 1500)
                {
                    myPosition = args.Position.Coordinate.ToGeoCoordinate();
                    UpDateMyPositionCircle(args.Position.Coordinate.Accuracy);
                }
            }
        });
    }