TF Seminor 4/15 Windows Phone7 Deep Dive フォロー - その2
4/15に開催したDeep Diveセミナー、もう直ぐ資料公開(ってプロジェクターにつながらなかったので、お初なんですが・・・)の予定ですが、BingMapのセンター位置を変更するコードが間違っていたので、投稿しておきます。公開資料は修正しときます。
GeoCoordinateWatcherオブジェクトのPositionChangedイベントに登録したハンドラのコードは、これも別スレッドなので
private delegate void UpdatePositionOnMapHandler( GeoPositionChangedEventArgs<GeoCoordinate> e);void locationWatcher_PositionChanged( object sender, GeoPositionChangedEventArgs<GeoCoordinate> e){ this.Dispatcher.BeginInvoke( new UpdatePositionOnMapHandler(UpdatePositionOnMap), new object[] { e });} |
として、UIのDispatcherキューに入れ、
private void UpdatePositionOnMap( GeoPositionChangedEventArgs<GeoCoordinate> e){ var position = new GeoCoordinate( e.Position.Location.Latitude, e.Position.Location.Longitude); map1.SetView(position, 10); } |
というコードを書けば、位置が更新されたときに、受け取った緯度、経度が中心に表示されるようになります。配布資料の様にCenterプロパティの更新では、表示は変わりません。
以上、参考になれば幸いです。