nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Visual Studio and Development Technologies。

Xamarin.Forms.GoogleMaps.Bindings 2.2.0リリースしました

Xamarin.Forms.GoogleMapsのバインディング対応ライブラリを更新しました。

更新内容はひとまず以下の通り。

  • UpdateRegionBehaviorの追加
  • UpdateCameraPositionBehaviorの追加
  • MoveToRegionBehaviorでanimatedを指定できるように変更

近いうちに、もう少し本体へ追従するよう修正します。

UpdateRegionBehaviorの追加

こんな感じで、地図の表示場所をバインドで更新できるようにしました。

<googleMaps:Map x:Name="MyMap" HorizontalOptions="Fill" VerticalOptions="FillAndExpand" MyLocationEnabled="True">
    <googleMaps:Map.Behaviors>
        <bindings:UpdateRegionBehavior Region="{Binding Region}" Animated="{Binding Animated}"/>
    </googleMaps:Map.Behaviors>
</googleMaps:Map>

UpdateCameraPositionBehaviorの追加

同様にカメラアングルもバインドで変更できるようにしました。

<googleMaps:Map x:Name="MyMap" HorizontalOptions="Fill" VerticalOptions="FillAndExpand" MyLocationEnabled="True">
    <googleMaps:Map.Behaviors>
        <bindings:UpdateCameraPositionBehavior CameraUpdate="{Binding CameraUpdate}" Duration="{Binding Duration}"/>
    </googleMaps:Map.Behaviors>
</googleMaps:Map>

Durationを指定しない、もしくはnullを指定するとアニメーションなしでカメラアングルが変更されます。

MoveToRegionBehaviorでanimatedを指定できるように変更

完全に認識外で漏れていたので追加しました。こんな感じで利用します。

public MoveToRegionRequest Request { get; } = new MoveToRegionRequest();

public Command MoveToTokyoCommand => new Command(() =>
{
    Request.MoveToRegion(
        MapSpan.FromCenterAndRadius(
            new Position(35.681298, 139.766247),
            Distance.FromKilometers(2)),
        Animated);
});

ドキュメントの正式な更新はまた今度。

以上です。