我正在使用新的Windows Phone 8地圖和地圖工具包。在每個PositionChanged
事件中,我將UserLocationMarker
設置爲新位置。如果用戶點擊UserLocationMarker
,我將通過ReverseGeocodeQuery
顯示地圖位置,並將用戶位置圖釘設置爲可見。要做到這一點非常快,我在PositionChanged
事件中執行ReverseGeocodeQuery
。Windows Phone - 持續跟蹤和ReverseGeocodeQuery
我的問題是,如果用戶位置變化非常快,它會執行很多ReverseGeocodeQuery
s。這是一個性能問題?
private void InitializeGeolocator()
{
geolocator = new Geolocator();
geolocator.DesiredAccuracy = PositionAccuracy.High;
geolocator.MovementThreshold = 5;
geolocator.StatusChanged += geolocator_StatusChanged;
geolocator.PositionChanged += geolocator_PositionChanged;
}
private void geolocator_PositionChanged(Geolocator sender, PositionChangedEventArgs args)
{
Dispatcher.BeginInvoke(() =>
{
Geoposition geoposition = args.Position;
this.UserLocationMarker.GeoCoordinate = geoposition.Coordinate.ToGeoCoordinate();
this.UserLocationMarker.Visibility = System.Windows.Visibility.Visible;
// execute ReverseGeocodeQuery...
// set Pushpin
});
}
private void userLocationMarker_tap(object sender, GestureEventArgs e)
{
// show user location pushpin...
UserLocationPushpin.Visibility = Visibility.Visible;
}
好吧,那的長相像一個好方法!但是,如果用戶移動速度非常快,並點擊* UserLocationMarker *,則Pusphin將出現並保留在舊位置。這是如何通過內置的地圖應用程序處理的? – 2013-03-05 09:42:11
內置的地圖應用似乎有兩個引腳,UserLocationMarker和後面的PushPin。當用戶點擊UserLocationMarker時,'PushPin'出現'正在...',然後加載地址。當位置改變時** **引腳移動並更新地址。如果用戶點擊其他地方,「PushPin」會隱藏agagin。 WP7仿真器具有地圖應用程序,與WP7仿真器不同,btw。 – 2013-03-05 10:55:47
好吧,在我看來,內置的應用程序正在使用* PositionChanged *事件進行位置更新,或者? – 2013-03-05 11:26:47