2013-02-17 2 views
0

Windows phone 7.1 용 탐색 응용 프로그램을 개발했습니다. 거기에서 잘 돌아가고있었습니다. 8.0으로 업데이트하면 GeoCoordinateWatcher가 더 이상 작동하지 않습니다. 나는 대신 Geolocator를 사용할 수 있다는 것을 알고 있지만 시간이 부족하기 때문에이를 거부합니다.WP8로 이전 한 후 GeoCoordinateWatcher가 작동하지 않습니다.

내 응용 프로그램의 경우 위치 정보가있는 개체 인스턴스를 저장하기 위해 감시자의 현재 위치를 읽었습니다. 객체 인스턴스를 저장할 때 경도와 위도는 0.0입니다. 내 에뮬레이터의 위치를 ​​0.0으로 변경하더라도. GeoCoordinateWatcher를 사용하는 다른 페이지에서도 동일한 문제가 발생합니다. 그것은 작동하지 않습니다. 이미 말했듯이, WP 7.1 - 7.8에서 잘 작동합니다.

GeoCoordinateWatcher watch; 
public GeoCoordinate loc = null; 
public MainPage() 
{ 
    InitializeComponent(); 
    if (watch == null) 
    { 
     watch = new GeoCoordinateWatcher(GeoPositionAccuracy.High) 
     { 
      MovementThreshold=10 
     }; 
     watch.Start(); 
     watch.PositionChanged += watch_PositionChanged; 
    } 
} 
void watch_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e) 
{ 
    //throw new NotImplementedException(); 
    Dispatcher.BeginInvoke(()=>LocUpdate(e)); 
} 

void LocUpdate(GeoPositionChangedEventArgs<GeoCoordinate> e) 
{ 
    try 
    { 
     location = new GeoCoordinate(e.Position.Location.Latitude, e.Position.Location.Longitude); 


    } 
    catch 
    { 
     MessageBox.Show("Error"); 
    } 
} 
:
public Map() 
    { 
     InitializeComponent(); 

     watcher = new GeoCoordinateWatcher(); 
     watcher.MovementThreshold = 20; 
     watcher.StatusChanged += new EventHandler<GeoPositionStatusChangedEventArgs>(watcher_StatusChanged); 
     watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(watcher_PositionChanged); 
    } 

    void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e) 
    { 
     if (e.Position.Location.IsUnknown) 
     { 
      MessageBox.Show("Please wait while your prosition is determined."); 
      return; 
     } 

     geo.Latitude = e.Position.Location.Latitude; 
     geo.Longitude = e.Position.Location.Longitude; 
    } 

답변

0

이 코드를 시도
관련 문제