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