次の方法で共有


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プロパティの更新では、表示は変わりません。

以上、参考になれば幸いです。