2015-07-29 2 views
0

У меня есть следующий код, где он отлично работает на эмуляторе. Он получает поддельное местоположение, то есть местоположение Microsoft в Редмонде, но его быстро. Я развернул тот же код на устройстве Windows Phone 8.1, и линия Geopostion буквально занимает 5 минут, чтобы получить широту и долготу. Есть ли способ получить широту и долготу быстрее, как здесь, транзит говорит, что вы получаете свое местоположение, но быстро. помогите мне и сообщите мне, что я делаю неправильно.Геопозиционирование занимает много времени Windows Phone 8

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

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

ответ

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