├── logo.png ├── nuits.jp.128x128.png ├── Source ├── SampleApp │ ├── SampleApp │ │ ├── AssemblyInfo.cs │ │ ├── Views │ │ │ ├── PinsPage.xaml.cs │ │ │ ├── RegionPage.xaml.cs │ │ │ ├── CirclesPage.xaml.cs │ │ │ ├── PolygonsPage.xaml.cs │ │ │ ├── PolylinesPage.xaml.cs │ │ │ ├── TileLayersPage.xaml.cs │ │ │ ├── GroundOverlaysPage.xaml.cs │ │ │ ├── MapLongClickedPage.xaml.cs │ │ │ ├── MoveCameraPage.xaml.cs │ │ │ ├── TakeSnapshotPage.xaml.cs │ │ │ ├── UpdateRegionPage.xaml.cs │ │ │ ├── AnimateCameraPage.xaml.cs │ │ │ ├── UpdateCameraPositionPage.xaml.cs │ │ │ ├── CirclesPage.xaml │ │ │ ├── PolygonsPage.xaml │ │ │ ├── PolylinesPage.xaml │ │ │ ├── TileLayersPage.xaml │ │ │ ├── GroundOverlaysPage.xaml │ │ │ ├── MapLongClickedPage.xaml │ │ │ ├── MoveCameraPage.xaml │ │ │ ├── AnimateCameraPage.xaml │ │ │ ├── MainPage.xaml │ │ │ ├── TakeSnapshotPage.xaml │ │ │ ├── UpdateRegionPage.xaml │ │ │ ├── UpdateCameraPositionPage.xaml │ │ │ ├── MainPage.xaml.cs │ │ │ ├── RegionPage.xaml │ │ │ └── PinsPage.xaml │ │ ├── App.xaml │ │ ├── App.xaml.cs │ │ ├── ViewModels │ │ │ ├── MapLongClickedPageViewModel.cs │ │ │ ├── ViewModelBase.cs │ │ │ ├── MoveCameraPageViewModel.cs │ │ │ ├── TakeSnapshotPageViewModel.cs │ │ │ ├── AnimateCameraPageViewModel.cs │ │ │ ├── CirclesPageViewModel.cs │ │ │ ├── GroundOverlaysPageViewModel.cs │ │ │ ├── RegionPageViewModel.cs │ │ │ ├── PolylinesPageViewModel.cs │ │ │ ├── PolygonsPageViewModel.cs │ │ │ ├── UpdateRegionPageViewModel.cs │ │ │ ├── UpdateCameraPositionPageViewModel.cs │ │ │ ├── PinsPageViewModel.cs │ │ │ └── TileLayersPageViewModel.cs │ │ └── SampleApp.csproj │ ├── SampleApp.Android │ │ ├── msbuild.binlog │ │ ├── Assets │ │ │ ├── image01.png │ │ │ └── AboutAssets.txt │ │ ├── Resources │ │ │ ├── mipmap-hdpi │ │ │ │ ├── icon.png │ │ │ │ └── launcher_foreground.png │ │ │ ├── mipmap-mdpi │ │ │ │ ├── icon.png │ │ │ │ └── launcher_foreground.png │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── icon.png │ │ │ │ └── launcher_foreground.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── icon.png │ │ │ │ └── launcher_foreground.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── icon.png │ │ │ │ └── launcher_foreground.png │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── icon.xml │ │ │ │ └── icon_round.xml │ │ │ ├── values │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ │ └── AboutResources.txt │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ └── AndroidManifest.xml │ │ ├── MainActivity.cs │ │ └── SampleApp.Android.csproj │ ├── SampleApp.iOS │ │ ├── Resources │ │ │ ├── Default.png │ │ │ ├── Default@2x.png │ │ │ ├── Default-568h@2x.png │ │ │ ├── Default-Portrait.png │ │ │ ├── Default-Portrait@2x.png │ │ │ └── LaunchScreen.storyboard │ │ ├── Assets.xcassets │ │ │ └── AppIcon.appiconset │ │ │ │ ├── Icon1024.png │ │ │ │ ├── Icon120.png │ │ │ │ ├── Icon152.png │ │ │ │ ├── Icon167.png │ │ │ │ ├── Icon180.png │ │ │ │ ├── Icon20.png │ │ │ │ ├── Icon29.png │ │ │ │ ├── Icon40.png │ │ │ │ ├── Icon58.png │ │ │ │ ├── Icon60.png │ │ │ │ ├── Icon76.png │ │ │ │ ├── Icon80.png │ │ │ │ ├── Icon87.png │ │ │ │ └── Contents.json │ │ ├── Entitlements.plist │ │ ├── Main.cs │ │ ├── AppDelegate.cs │ │ ├── Info.plist │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ └── SampleApp.iOS.csproj │ └── SampleApp.UWP │ │ ├── Assets │ │ ├── StoreLogo.backup.png │ │ ├── LargeTile.scale-100.png │ │ ├── LargeTile.scale-200.png │ │ ├── LargeTile.scale-400.png │ │ ├── SmallTile.scale-100.png │ │ ├── SmallTile.scale-200.png │ │ ├── SmallTile.scale-400.png │ │ ├── StoreLogo.scale-100.png │ │ ├── StoreLogo.scale-200.png │ │ ├── StoreLogo.scale-400.png │ │ ├── SplashScreen.scale-100.png │ │ ├── SplashScreen.scale-200.png │ │ ├── SplashScreen.scale-400.png │ │ ├── Square44x44Logo.scale-100.png │ │ ├── Square44x44Logo.scale-200.png │ │ ├── Square44x44Logo.scale-400.png │ │ ├── Wide310x150Logo.scale-100.png │ │ ├── Wide310x150Logo.scale-200.png │ │ ├── Wide310x150Logo.scale-400.png │ │ ├── Square150x150Logo.scale-100.png │ │ ├── Square150x150Logo.scale-200.png │ │ ├── Square150x150Logo.scale-400.png │ │ ├── Square44x44Logo.targetsize-16.png │ │ ├── Square44x44Logo.targetsize-256.png │ │ ├── Square44x44Logo.targetsize-48.png │ │ ├── Square44x44Logo.altform-unplated_targetsize-16.png │ │ ├── Square44x44Logo.altform-unplated_targetsize-48.png │ │ └── Square44x44Logo.altform-unplated_targetsize-256.png │ │ ├── App.xaml │ │ ├── MainPage.xaml │ │ ├── MainPage.xaml.cs │ │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ └── Default.rd.xml │ │ ├── Package.appxmanifest │ │ ├── App.xaml.cs │ │ └── SampleApp.UWP.csproj ├── Xamarin.Forms.GoogleMaps.Bindings.sln.DotSettings ├── Xamarin.Forms.GoogleMaps.Bindings │ ├── MoveToRegionRequest.cs │ ├── MoveToRegionRequestedEventArgs.cs │ ├── TakeSnapshotRequest.cs │ ├── MoveCameraRequest.cs │ ├── EventToCommandBehaviorBase.cs │ ├── AnimateCameraRequest.cs │ ├── PinDragEndToCommandBehavior.cs │ ├── PinDraggingToCommandBehavior.cs │ ├── PinDragStartToCommandBehavior.cs │ ├── MapClickedToCommandBehavior.cs │ ├── MapLongClickedToCommandBehavior.cs │ ├── PinClickedToCommandBehavior.cs │ ├── CameraIdledToCommandBehavior.cs │ ├── CameraMovingToCommandBehavior.cs │ ├── SelectedPinChangedToCommandBehavior.cs │ ├── CameraMoveStartedToCommandBehavior.cs │ ├── InfoWindowClickedToCommandBehavior.cs │ ├── InfoWindowLongClickedToCommandBehavior.cs │ ├── MyLocationButtonClickedToCommandBehavior.cs │ ├── BindingPinsBehavior.cs │ ├── BindingCirclesBehavior.cs │ ├── UpdateRegionBehavior.cs │ ├── BindingPolygonsBehavior.cs │ ├── BindingPolylinesBehavior.cs │ ├── BindingTileLayersBehavior.cs │ ├── BindingGroundOverlaysBehavior.cs │ ├── Infrastructure.cs │ ├── BehaviorBase.cs │ ├── BindingVisibleRegionBehavior.cs │ ├── BindingRegionBehavior.cs │ ├── UpdateCameraPositionBehavior.cs │ ├── MoveCameraBehavior.cs │ ├── TakeSnapshotBehavior.cs │ ├── AnimateCameraBehavior.cs │ ├── Xamarin.Forms.GoogleMaps.Bindings.csproj │ └── MoveToRegionBehavior.cs └── Xamarin.Forms.GoogleMaps.Bindings.sln ├── LICENSE ├── .gitattributes ├── README-ja.md ├── README.md └── .gitignore /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/logo.png -------------------------------------------------------------------------------- /nuits.jp.128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/nuits.jp.128x128.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Xaml; 2 | 3 | [assembly: XamlCompilation(XamlCompilationOptions.Compile)] -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.Android/msbuild.binlog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.Android/msbuild.binlog -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.Android/Assets/image01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.Android/Assets/image01.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Resources/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.iOS/Resources/Default.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Resources/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.iOS/Resources/Default@2x.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/StoreLogo.backup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/StoreLogo.backup.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Resources/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.iOS/Resources/Default-568h@2x.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/LargeTile.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/LargeTile.scale-100.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/LargeTile.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/LargeTile.scale-200.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/LargeTile.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/LargeTile.scale-400.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/SmallTile.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/SmallTile.scale-100.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/SmallTile.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/SmallTile.scale-200.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/SmallTile.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/SmallTile.scale-400.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/StoreLogo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/StoreLogo.scale-100.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/StoreLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/StoreLogo.scale-200.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/StoreLogo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/StoreLogo.scale-400.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Resources/Default-Portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.iOS/Resources/Default-Portrait.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.Android/Resources/mipmap-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.Android/Resources/mipmap-hdpi/icon.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.Android/Resources/mipmap-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.Android/Resources/mipmap-mdpi/icon.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/SplashScreen.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/SplashScreen.scale-100.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/SplashScreen.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/SplashScreen.scale-400.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Resources/Default-Portrait@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.iOS/Resources/Default-Portrait@2x.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.Android/Resources/mipmap-xhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.Android/Resources/mipmap-xhdpi/icon.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.Android/Resources/mipmap-xxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.Android/Resources/mipmap-xxhdpi/icon.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.Android/Resources/mipmap-xxxhdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.Android/Resources/mipmap-xxxhdpi/icon.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/Square44x44Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/Square44x44Logo.scale-100.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/Square44x44Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/Square44x44Logo.scale-400.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/Wide310x150Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/Wide310x150Logo.scale-100.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/Wide310x150Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/Wide310x150Logo.scale-400.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/Square150x150Logo.scale-100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/Square150x150Logo.scale-100.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/Square150x150Logo.scale-400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/Square150x150Logo.scale-400.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/Square44x44Logo.targetsize-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/Square44x44Logo.targetsize-16.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/Square44x44Logo.targetsize-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/Square44x44Logo.targetsize-256.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/Square44x44Logo.targetsize-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/Square44x44Logo.targetsize-48.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.Android/Resources/mipmap-hdpi/launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.Android/Resources/mipmap-hdpi/launcher_foreground.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.Android/Resources/mipmap-mdpi/launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.Android/Resources/mipmap-mdpi/launcher_foreground.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.Android/Resources/mipmap-xhdpi/launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.Android/Resources/mipmap-xhdpi/launcher_foreground.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.Android/Resources/mipmap-xxhdpi/launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.Android/Resources/mipmap-xxhdpi/launcher_foreground.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-16.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-48.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings/HEAD/Source/SampleApp/SampleApp.UWP/Assets/Square44x44Logo.altform-unplated_targetsize-256.png -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/PinsPage.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace SampleApp.Views 2 | { 3 | public partial class PinsPage 4 | { 5 | public PinsPage() 6 | { 7 | InitializeComponent(); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/RegionPage.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace SampleApp.Views 2 | { 3 | public partial class RegionPage 4 | { 5 | public RegionPage() 6 | { 7 | InitializeComponent(); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Entitlements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/CirclesPage.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace SampleApp.Views 2 | { 3 | public partial class CirclesPage 4 | { 5 | public CirclesPage() 6 | { 7 | InitializeComponent(); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/PolygonsPage.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace SampleApp.Views 2 | { 3 | public partial class PolygonsPage 4 | { 5 | public PolygonsPage() 6 | { 7 | InitializeComponent(); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/PolylinesPage.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace SampleApp.Views 2 | { 3 | public partial class PolylinesPage 4 | { 5 | public PolylinesPage() 6 | { 7 | InitializeComponent(); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/TileLayersPage.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace SampleApp.Views 2 | { 3 | public partial class TileLayersPage 4 | { 5 | public TileLayersPage() 6 | { 7 | InitializeComponent(); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/GroundOverlaysPage.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace SampleApp.Views 2 | { 3 | public partial class GroundOverlaysPage 4 | { 5 | public GroundOverlaysPage() 6 | { 7 | InitializeComponent(); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/MapLongClickedPage.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace SampleApp.Views 2 | { 3 | public partial class MapLongClickedPage 4 | { 5 | public MapLongClickedPage() 6 | { 7 | InitializeComponent(); 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/App.xaml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/App.xaml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.Android/Resources/mipmap-anydpi-v26/icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.Android/Resources/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | #3F51B5 5 | #303F9F 6 | #FF4081 7 | 8 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.Android/Resources/mipmap-anydpi-v26/icon_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/MoveCameraPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace SampleApp.Views 5 | { 6 | [XamlCompilation(XamlCompilationOptions.Compile)] 7 | public partial class MoveCameraPage : ContentPage 8 | { 9 | public MoveCameraPage() 10 | { 11 | InitializeComponent(); 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/TakeSnapshotPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | using Xamarin.Forms.Xaml; 3 | 4 | namespace SampleApp.Views 5 | { 6 | [XamlCompilation(XamlCompilationOptions.Compile)] 7 | public partial class TakeSnapshotPage : ContentPage 8 | { 9 | public TakeSnapshotPage() 10 | { 11 | InitializeComponent(); 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/UpdateRegionPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace SampleApp.Views 4 | { 5 | public partial class UpdateRegionPage 6 | { 7 | public UpdateRegionPage() 8 | { 9 | InitializeComponent(); 10 | } 11 | 12 | private void OnAppearing(object sender, EventArgs e) 13 | { 14 | //((UpdateRegionPageViewModel)BindingContext).MoveToTokyoCommand.Execute(null); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings.sln.DotSettings: -------------------------------------------------------------------------------- 1 | 2 | True -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/MoveToRegionRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xamarin.Forms.GoogleMaps.Bindings 4 | { 5 | public sealed class MoveToRegionRequest 6 | { 7 | internal event EventHandler MoveToRegionRequested; 8 | 9 | public void MoveToRegion(MapSpan mapSpan, bool animated = true) 10 | { 11 | MoveToRegionRequested?.Invoke(this, new MoveToRegionRequestedEventArgs(mapSpan, animated)); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/MoveToRegionRequestedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Xamarin.Forms.GoogleMaps.Bindings 4 | { 5 | internal sealed class MoveToRegionRequestedEventArgs : EventArgs 6 | { 7 | internal MapSpan MapSpan { get; } 8 | internal bool Animated { get; } 9 | 10 | internal MoveToRegionRequestedEventArgs(MapSpan mapSpan, bool animated) 11 | { 12 | MapSpan = mapSpan; 13 | Animated = animated; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/MainPage.xaml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/AnimateCameraPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | using Xamarin.Forms; 8 | using Xamarin.Forms.Xaml; 9 | 10 | namespace SampleApp.Views 11 | { 12 | [XamlCompilation(XamlCompilationOptions.Compile)] 13 | public partial class AnimateCameraPage : ContentPage 14 | { 15 | public AnimateCameraPage() 16 | { 17 | InitializeComponent(); 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/Main.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | 5 | using Foundation; 6 | using UIKit; 7 | 8 | namespace SampleApp.iOS 9 | { 10 | public class Application 11 | { 12 | // This is the main entry point of the application. 13 | static void Main(string[] args) 14 | { 15 | // if you want to use a different Application Delegate class from "AppDelegate" 16 | // you can specify it here. 17 | UIApplication.Main(args, null, "AppDelegate"); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using SampleApp.Views; 3 | using Xamarin.Forms; 4 | using Xamarin.Forms.Xaml; 5 | 6 | namespace SampleApp 7 | { 8 | public partial class App : Application 9 | { 10 | public App() 11 | { 12 | InitializeComponent(); 13 | 14 | MainPage = new NavigationPage(new MainPage()); 15 | } 16 | 17 | protected override void OnStart() 18 | { 19 | } 20 | 21 | protected override void OnSleep() 22 | { 23 | } 24 | 25 | protected override void OnResume() 26 | { 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/TakeSnapshotRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace Xamarin.Forms.GoogleMaps.Bindings 8 | { 9 | public sealed class TakeSnapshotRequest 10 | { 11 | internal TakeSnapshotBehavior TakeSnapshotBehavior { get; set; } 12 | public Task TakeSnapshot() 13 | { 14 | if (TakeSnapshotBehavior == null) throw new InvalidOperationException("Not binding to TakeSnapshotBehavior."); 15 | 16 | return TakeSnapshotBehavior.TakeSnapshot(); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/UpdateCameraPositionPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using SampleApp.ViewModels; 3 | using Xamarin.Forms; 4 | using Xamarin.Forms.Xaml; 5 | 6 | namespace SampleApp.Views 7 | { 8 | [XamlCompilation(XamlCompilationOptions.Compile)] 9 | public partial class UpdateCameraPositionPage : ContentPage 10 | { 11 | public UpdateCameraPositionPage() 12 | { 13 | InitializeComponent(); 14 | } 15 | 16 | private void ContentPage_Appearing(object sender, EventArgs e) 17 | { 18 | ((UpdateCameraPositionPageViewModel)BindingContext).MoveToTokyoCommand.Execute(true); 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/MoveCameraRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.Threading.Tasks; 5 | 6 | namespace Xamarin.Forms.GoogleMaps.Bindings 7 | { 8 | public sealed class MoveCameraRequest 9 | { 10 | internal MoveCameraBehavior MoveCameraBehavior { get; set; } 11 | public Task MoveCamera(CameraUpdate cameraUpdate) 12 | { 13 | if(MoveCameraBehavior == null) throw new InvalidOperationException("Not binding to MoveCameraBehavior."); 14 | 15 | return MoveCameraBehavior.MoveCamera(cameraUpdate); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/ViewModels/MapLongClickedPageViewModel.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | using Xamarin.Forms.GoogleMaps; 3 | 4 | namespace SampleApp.ViewModels 5 | { 6 | public class MapLongClickedPageViewModel : ViewModelBase 7 | { 8 | private int _clickedCount; 9 | 10 | public int ClickedCount 11 | { 12 | get => _clickedCount; 13 | set => SetProperty(ref _clickedCount, value); 14 | } 15 | 16 | public Command MapLongClickedCommand => new Command( 17 | args => 18 | { 19 | ClickedCount++; 20 | }); 21 | 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/ViewModels/ViewModelBase.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Runtime.CompilerServices; 3 | 4 | namespace SampleApp.ViewModels 5 | { 6 | public abstract class ViewModelBase : INotifyPropertyChanged 7 | { 8 | public event PropertyChangedEventHandler PropertyChanged; 9 | 10 | protected virtual void SetProperty(ref T property, T value, [CallerMemberName] string propertyName = null) 11 | { 12 | if (!Equals(property, value)) 13 | { 14 | property = value; 15 | PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/EventToCommandBehaviorBase.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Input; 2 | 3 | namespace Xamarin.Forms.GoogleMaps.Bindings 4 | { 5 | public abstract class EventToCommandBehaviorBase : BehaviorBase 6 | { 7 | public static readonly BindableProperty CommandProperty = BindableProperty.Create("Command", typeof(ICommand), typeof(MapClickedToCommandBehavior), default(ICommand)); 8 | 9 | public ICommand Command 10 | { 11 | get => (ICommand)GetValue(CommandProperty); 12 | set => SetValue(CommandProperty, value); 13 | } 14 | 15 | internal EventToCommandBehaviorBase() 16 | { 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/AnimateCameraRequest.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.Threading.Tasks; 5 | 6 | namespace Xamarin.Forms.GoogleMaps.Bindings 7 | { 8 | public sealed class AnimateCameraRequest 9 | { 10 | internal AnimateCameraBehavior AnimateCameraBehavior { get; set; } 11 | public Task AnimateCamera(CameraUpdate cameraUpdate, TimeSpan? duration = null) 12 | { 13 | if (AnimateCameraBehavior == null) throw new InvalidOperationException("Not binding to AnimateCameraBehavior."); 14 | 15 | return AnimateCameraBehavior.AnimateCamera(cameraUpdate, duration); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.Android/Assets/AboutAssets.txt: -------------------------------------------------------------------------------- 1 | Any raw assets you want to be deployed with your application can be placed in 2 | this directory (and child directories) and given a Build Action of "AndroidAsset". 3 | 4 | These files will be deployed with your package and will be accessible using Android's 5 | AssetManager, like this: 6 | 7 | public class ReadAsset : Activity 8 | { 9 | protected override void OnCreate (Bundle bundle) 10 | { 11 | base.OnCreate (bundle); 12 | 13 | InputStream input = Assets.Open ("my_asset.txt"); 14 | } 15 | } 16 | 17 | Additionally, some Android functions will automatically load asset files: 18 | 19 | Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); 20 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/MainPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Runtime.InteropServices.WindowsRuntime; 6 | using Windows.Foundation; 7 | using Windows.Foundation.Collections; 8 | using Windows.UI.Xaml; 9 | using Windows.UI.Xaml.Controls; 10 | using Windows.UI.Xaml.Controls.Primitives; 11 | using Windows.UI.Xaml.Data; 12 | using Windows.UI.Xaml.Input; 13 | using Windows.UI.Xaml.Media; 14 | using Windows.UI.Xaml.Navigation; 15 | 16 | namespace SampleApp.UWP 17 | { 18 | public sealed partial class MainPage 19 | { 20 | public MainPage() 21 | { 22 | this.InitializeComponent(); 23 | 24 | LoadApplication(new SampleApp.App()); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/ViewModels/MoveCameraPageViewModel.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | using Xamarin.Forms.GoogleMaps; 3 | using Xamarin.Forms.GoogleMaps.Bindings; 4 | 5 | namespace SampleApp.ViewModels 6 | { 7 | public class MoveCameraPageViewModel 8 | { 9 | public MoveCameraRequest MoveCameraRequest { get; } = new MoveCameraRequest(); 10 | public Command MoveToTokyoCommand => new Command(() => 11 | { 12 | MoveCameraRequest.MoveCamera(CameraUpdateFactory.NewCameraPosition( 13 | new CameraPosition( 14 | new Position(35.681298, 139.766247), // Tokyo 15 | 17d, // zoom 16 | 45d, // bearing(rotation) 17 | 60d // tilt 18 | ))); 19 | }); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/ViewModels/TakeSnapshotPageViewModel.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | using Xamarin.Forms.GoogleMaps.Bindings; 3 | 4 | namespace SampleApp.ViewModels 5 | { 6 | public class TakeSnapshotPageViewModel : ViewModelBase 7 | { 8 | private ImageSource _imageSource; 9 | public TakeSnapshotRequest TakeSnapshotRequest { get; } = new TakeSnapshotRequest(); 10 | 11 | public ImageSource ImageSource 12 | { 13 | get => _imageSource; 14 | set => SetProperty(ref _imageSource, value); 15 | } 16 | 17 | public Command TakeSnapshotCommand => new Command(async () => 18 | { 19 | var stream = await TakeSnapshotRequest.TakeSnapshot(); 20 | ImageSource = ImageSource.FromStream(() => stream); 21 | }); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/PinDragEndToCommandBehavior.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | 3 | namespace Xamarin.Forms.GoogleMaps.Bindings 4 | { 5 | [Preserve(AllMembers = true)] 6 | public sealed class PinDragEndToCommandBehavior : EventToCommandBehaviorBase 7 | { 8 | protected override void OnAttachedTo(Map bindable) 9 | { 10 | base.OnAttachedTo(bindable); 11 | bindable.PinDragEnd += OnPinDragEnd; 12 | } 13 | 14 | protected override void OnDetachingFrom(Map bindable) 15 | { 16 | base.OnDetachingFrom(bindable); 17 | bindable.PinDragEnd -= OnPinDragEnd; 18 | } 19 | 20 | private void OnPinDragEnd(object sender, PinDragEventArgs args) 21 | { 22 | Command?.Execute(args); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/PinDraggingToCommandBehavior.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | 3 | namespace Xamarin.Forms.GoogleMaps.Bindings 4 | { 5 | [Preserve(AllMembers = true)] 6 | public sealed class PinDraggingToCommandBehavior : EventToCommandBehaviorBase 7 | { 8 | protected override void OnAttachedTo(Map bindable) 9 | { 10 | base.OnAttachedTo(bindable); 11 | bindable.PinDragging += OnPinDragging; 12 | } 13 | 14 | protected override void OnDetachingFrom(Map bindable) 15 | { 16 | base.OnDetachingFrom(bindable); 17 | bindable.PinDragging -= OnPinDragging; 18 | } 19 | 20 | private void OnPinDragging(object sender, PinDragEventArgs args) 21 | { 22 | Command?.Execute(args); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/PinDragStartToCommandBehavior.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | 3 | namespace Xamarin.Forms.GoogleMaps.Bindings 4 | { 5 | [Preserve(AllMembers = true)] 6 | public sealed class PinDragStartToCommandBehavior : EventToCommandBehaviorBase 7 | { 8 | protected override void OnAttachedTo(Map bindable) 9 | { 10 | base.OnAttachedTo(bindable); 11 | bindable.PinDragStart += OnPinDragStart; 12 | } 13 | 14 | protected override void OnDetachingFrom(Map bindable) 15 | { 16 | base.OnDetachingFrom(bindable); 17 | bindable.PinDragStart -= OnPinDragStart; 18 | } 19 | 20 | private void OnPinDragStart(object sender, PinDragEventArgs args) 21 | { 22 | Command?.Execute(args); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/ViewModels/AnimateCameraPageViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Xamarin.Forms; 3 | using Xamarin.Forms.GoogleMaps; 4 | using Xamarin.Forms.GoogleMaps.Bindings; 5 | 6 | namespace SampleApp.ViewModels 7 | { 8 | public class AnimateCameraPageViewModel 9 | { 10 | public AnimateCameraRequest AnimateCameraRequest { get; } = new AnimateCameraRequest(); 11 | public Command MoveToTokyoCommand => new Command(() => 12 | { 13 | AnimateCameraRequest.AnimateCamera(CameraUpdateFactory.NewCameraPosition( 14 | new CameraPosition( 15 | new Position(35.681298, 139.766247), // Tokyo 16 | 17d, // zoom 17 | 45d, // bearing(rotation) 18 | 60d // tilt 19 | )), TimeSpan.FromSeconds(2)); ; 20 | }); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/MapClickedToCommandBehavior.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | 3 | namespace Xamarin.Forms.GoogleMaps.Bindings 4 | { 5 | [Preserve(AllMembers = true)] 6 | public sealed class MapClickedToCommandBehavior : EventToCommandBehaviorBase 7 | { 8 | protected override void OnAttachedTo(Map bindable) 9 | { 10 | base.OnAttachedTo(bindable); 11 | bindable.MapClicked += OnMapClicked; 12 | } 13 | 14 | protected override void OnDetachingFrom(Map bindable) 15 | { 16 | base.OnDetachingFrom(bindable); 17 | bindable.MapClicked -= OnMapClicked; 18 | } 19 | 20 | private void OnMapClicked(object sender, MapClickedEventArgs mapClickedEventArgs) 21 | { 22 | Command?.Execute(mapClickedEventArgs); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/MapLongClickedToCommandBehavior.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | 3 | namespace Xamarin.Forms.GoogleMaps.Bindings 4 | { 5 | [Preserve(AllMembers = true)] 6 | public sealed class MapLongClickedToCommandBehavior : EventToCommandBehaviorBase 7 | { 8 | protected override void OnAttachedTo(Map bindable) 9 | { 10 | base.OnAttachedTo(bindable); 11 | bindable.MapLongClicked += OnMapLongClicked; 12 | } 13 | 14 | protected override void OnDetachingFrom(Map bindable) 15 | { 16 | base.OnDetachingFrom(bindable); 17 | bindable.MapLongClicked -= OnMapLongClicked; 18 | } 19 | 20 | private void OnMapLongClicked(object sender, MapLongClickedEventArgs args) 21 | { 22 | Command?.Execute(args); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/PinClickedToCommandBehavior.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | 3 | namespace Xamarin.Forms.GoogleMaps.Bindings 4 | { 5 | [Preserve(AllMembers = true)] 6 | public sealed class PinClickedToCommandBehavior : EventToCommandBehaviorBase 7 | { 8 | protected override void OnAttachedTo(Map bindable) 9 | { 10 | base.OnAttachedTo(bindable); 11 | bindable.PinClicked += OnPinClicked; 12 | } 13 | 14 | protected override void OnDetachingFrom(Map bindable) 15 | { 16 | base.OnDetachingFrom(bindable); 17 | bindable.PinClicked -= OnPinClicked; 18 | } 19 | 20 | private void OnPinClicked(object sender, PinClickedEventArgs pinClickedEventArgs) 21 | { 22 | Command?.Execute(pinClickedEventArgs); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/CameraIdledToCommandBehavior.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | 3 | namespace Xamarin.Forms.GoogleMaps.Bindings 4 | { 5 | [Preserve(AllMembers = true)] 6 | public sealed class CameraIdledToCommandBehavior : EventToCommandBehaviorBase 7 | { 8 | protected override void OnAttachedTo(Map bindable) 9 | { 10 | base.OnAttachedTo(bindable); 11 | bindable.CameraIdled += OnCameraIdled; 12 | } 13 | 14 | protected override void OnDetachingFrom(Map bindable) 15 | { 16 | base.OnDetachingFrom(bindable); 17 | bindable.CameraIdled -= OnCameraIdled; 18 | } 19 | 20 | private void OnCameraIdled(object sender, CameraIdledEventArgs cameraIdledEventArgs) 21 | { 22 | Command?.Execute(cameraIdledEventArgs); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/CameraMovingToCommandBehavior.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | 3 | namespace Xamarin.Forms.GoogleMaps.Bindings 4 | { 5 | [Preserve(AllMembers = true)] 6 | public sealed class CameraMovingToCommandBehavior : EventToCommandBehaviorBase 7 | { 8 | protected override void OnAttachedTo(Map bindable) 9 | { 10 | base.OnAttachedTo(bindable); 11 | bindable.CameraMoving += OnCameraMoving; 12 | } 13 | 14 | protected override void OnDetachingFrom(Map bindable) 15 | { 16 | base.OnDetachingFrom(bindable); 17 | bindable.CameraMoving -= OnCameraMoving; 18 | } 19 | 20 | private void OnCameraMoving(object sender, CameraMovingEventArgs cameraMovingEventArgs) 21 | { 22 | Command?.Execute(cameraMovingEventArgs); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/SelectedPinChangedToCommandBehavior.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | 3 | namespace Xamarin.Forms.GoogleMaps.Bindings 4 | { 5 | [Preserve(AllMembers = true)] 6 | public sealed class SelectedPinChangedToCommandBehavior : EventToCommandBehaviorBase 7 | { 8 | protected override void OnAttachedTo(Map bindable) 9 | { 10 | base.OnAttachedTo(bindable); 11 | bindable.SelectedPinChanged += OnSelectedPinChanged; 12 | } 13 | 14 | protected override void OnDetachingFrom(Map bindable) 15 | { 16 | base.OnDetachingFrom(bindable); 17 | bindable.SelectedPinChanged -= OnSelectedPinChanged; 18 | } 19 | 20 | private void OnSelectedPinChanged(object sender, SelectedPinChangedEventArgs args) 21 | { 22 | Command?.Execute(args); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.Android/Resources/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/CameraMoveStartedToCommandBehavior.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | 3 | namespace Xamarin.Forms.GoogleMaps.Bindings 4 | { 5 | [Preserve(AllMembers = true)] 6 | public sealed class CameraMoveStartedToCommandBehavior : EventToCommandBehaviorBase 7 | { 8 | protected override void OnAttachedTo(Map bindable) 9 | { 10 | base.OnAttachedTo(bindable); 11 | bindable.CameraMoveStarted += OnCameraMoveStarted; 12 | } 13 | 14 | protected override void OnDetachingFrom(Map bindable) 15 | { 16 | base.OnDetachingFrom(bindable); 17 | bindable.CameraMoveStarted -= OnCameraMoveStarted; 18 | } 19 | 20 | private void OnCameraMoveStarted(object sender, CameraMoveStartedEventArgs cameraMoveStartedEventArgs) 21 | { 22 | Command?.Execute(cameraMoveStartedEventArgs); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/InfoWindowClickedToCommandBehavior.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms.Internals; 2 | 3 | namespace Xamarin.Forms.GoogleMaps.Bindings 4 | { 5 | [Preserve(AllMembers = true)] 6 | public sealed class InfoWindowClickedToCommandBehavior : EventToCommandBehaviorBase 7 | { 8 | protected override void OnAttachedTo(Map bindable) 9 | { 10 | base.OnAttachedTo(bindable); 11 | bindable.InfoWindowClicked += OnInfoWindowClicked; 12 | } 13 | 14 | protected override void OnDetachingFrom(Map bindable) 15 | { 16 | base.OnDetachingFrom(bindable); 17 | bindable.InfoWindowClicked -= OnInfoWindowClicked; 18 | } 19 | 20 | private void OnInfoWindowClicked(object sender, InfoWindowClickedEventArgs infoWindowClickedEventArgs) 21 | { 22 | Command?.Execute(infoWindowClickedEventArgs); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/ViewModels/CirclesPageViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.ObjectModel; 2 | using Xamarin.Forms; 3 | using Xamarin.Forms.GoogleMaps; 4 | 5 | namespace SampleApp.ViewModels 6 | { 7 | public class CirclesPageViewModel : ViewModelBase 8 | { 9 | public ObservableCollection Circles { get; set; } 10 | 11 | public Command MapClickedCommand => new Command( 12 | args => 13 | { 14 | var circle = new Circle 15 | { 16 | Center = args.Point, 17 | Radius = Distance.FromMeters(3000f), 18 | StrokeColor = Color.Purple, 19 | StrokeWidth = 6f, 20 | FillColor = Color.FromRgba(0, 0, 255, 32), 21 | Tag = "CIRCLE" 22 | }; 23 | 24 | // Can set any object 25 | 26 | Circles.Add(circle); 27 | }); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/ViewModels/GroundOverlaysPageViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.ObjectModel; 2 | using Xamarin.Forms; 3 | using Xamarin.Forms.GoogleMaps; 4 | 5 | namespace SampleApp.ViewModels 6 | { 7 | public class GroundOverlaysPageViewModel : ViewModelBase 8 | { 9 | public ObservableCollection GroundOverlays { get; set; } 10 | 11 | public Command MapClickedCommand => new Command( 12 | args => 13 | { 14 | var icon = BitmapDescriptorFactory.FromBundle("image01.png"); 15 | var overlay = new GroundOverlay() 16 | { 17 | Bounds = new Bounds(args.Point, new Position(args.Point.Latitude + 0.01d, args.Point.Longitude + 0.01d)), 18 | Icon = icon, 19 | Transparency = 0.5f, 20 | Tag = "THE GROUNDOVERLAY" 21 | }; 22 | GroundOverlays.Add(overlay); 23 | }); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/InfoWindowLongClickedToCommandBehavior.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using Xamarin.Forms.Internals; 5 | 6 | namespace Xamarin.Forms.GoogleMaps.Bindings 7 | { 8 | [Preserve(AllMembers = true)] 9 | public sealed class InfoWindowLongClickedToCommandBehavior : EventToCommandBehaviorBase 10 | { 11 | protected override void OnAttachedTo(Map bindable) 12 | { 13 | base.OnAttachedTo(bindable); 14 | bindable.InfoWindowLongClicked += OnInfoWindowLongClicked; 15 | } 16 | 17 | protected override void OnDetachingFrom(Map bindable) 18 | { 19 | base.OnDetachingFrom(bindable); 20 | bindable.InfoWindowLongClicked -= OnInfoWindowLongClicked; 21 | } 22 | 23 | private void OnInfoWindowLongClicked(object sender, InfoWindowLongClickedEventArgs infoWindowLongClickedEventArgs) 24 | { 25 | Command?.Execute(infoWindowLongClickedEventArgs); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/MyLocationButtonClickedToCommandBehavior.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using Xamarin.Forms.Internals; 5 | 6 | namespace Xamarin.Forms.GoogleMaps.Bindings 7 | { 8 | [Preserve(AllMembers = true)] 9 | 10 | public sealed class MyLocationButtonClickedToCommandBehavior : EventToCommandBehaviorBase 11 | { 12 | protected override void OnAttachedTo(Map bindable) 13 | { 14 | base.OnAttachedTo(bindable); 15 | bindable.MyLocationButtonClicked +=OnMyLocationButtonClicked; 16 | } 17 | 18 | protected override void OnDetachingFrom(Map bindable) 19 | { 20 | base.OnDetachingFrom(bindable); 21 | bindable.MyLocationButtonClicked -= OnMyLocationButtonClicked; 22 | } 23 | 24 | private void OnMyLocationButtonClicked(object sender, MyLocationButtonClickedEventArgs myLocationButtonClickedEventArgs) 25 | { 26 | Command?.Execute(myLocationButtonClickedEventArgs); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/ViewModels/RegionPageViewModel.cs: -------------------------------------------------------------------------------- 1 | using Xamarin.Forms; 2 | using Xamarin.Forms.GoogleMaps; 3 | using Xamarin.Forms.GoogleMaps.Bindings; 4 | 5 | namespace SampleApp.ViewModels 6 | { 7 | public class RegionPageViewModel : ViewModelBase 8 | { 9 | private MapRegion _region; 10 | public MapRegion Region 11 | { 12 | get => _region; 13 | set => SetProperty(ref _region, value); 14 | } 15 | 16 | private bool _animated = true; 17 | public bool Animated 18 | { 19 | get => _animated; 20 | set => SetProperty(ref _animated, value); 21 | } 22 | 23 | public MoveToRegionRequest Request { get; } = new MoveToRegionRequest(); 24 | 25 | 26 | public Command MoveToTokyoCommand => new Command(() => 27 | { 28 | Request.MoveToRegion( 29 | MapSpan.FromCenterAndRadius( 30 | new Position(35.681298, 139.766247), 31 | Distance.FromKilometers(2)), 32 | Animated); 33 | }); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/SampleApp.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | true 6 | 7 | 8 | 9 | portable 10 | true 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | RegionPage.xaml 27 | 28 | 29 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/CirclesPage.xaml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/PolygonsPage.xaml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/PolylinesPage.xaml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/TileLayersPage.xaml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Atsushi Nakamura 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/GroundOverlaysPage.xaml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.UWP/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("SampleApp.UWP")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("SampleApp.UWP")] 13 | [assembly: AssemblyCopyright("Copyright © 2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Version information for an assembly consists of the following four values: 18 | // 19 | // Major Version 20 | // Minor Version 21 | // Build Number 22 | // Revision 23 | // 24 | // You can specify all the values or you can default the Build and Revision Numbers 25 | // by using the '*' as shown below: 26 | // [assembly: AssemblyVersion("1.0.*")] 27 | [assembly: AssemblyVersion("1.0.0.0")] 28 | [assembly: AssemblyFileVersion("1.0.0.0")] 29 | [assembly: ComVisible(false)] -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/ViewModels/PolylinesPageViewModel.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.ObjectModel; 2 | using Xamarin.Forms; 3 | using Xamarin.Forms.GoogleMaps; 4 | 5 | namespace SampleApp.ViewModels 6 | { 7 | public class PolylinesPageViewModel : ViewModelBase 8 | { 9 | public ObservableCollection Polylines { get; set; } 10 | public Command MapClickedCommand => new Command( 11 | args => 12 | { 13 | var position = args.Point; 14 | var polyline = new Polyline(); 15 | polyline.Positions.Add(position); 16 | polyline.Positions.Add(new Position(position.Latitude - 0.02d, position.Longitude - 0.01d)); 17 | polyline.Positions.Add(new Position(position.Latitude - 0.02d, position.Longitude + 0.01d)); 18 | polyline.Positions.Add(position); 19 | 20 | polyline.IsClickable = true; 21 | polyline.StrokeColor = Color.Blue; 22 | polyline.StrokeWidth = 5f; 23 | polyline.Tag = "POLYLINE"; // Can set any object 24 | Polylines.Add(polyline); 25 | }); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/MapLongClickedPage.xaml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/BindingPinsBehavior.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.ObjectModel; 2 | using Xamarin.Forms.Internals; 3 | 4 | namespace Xamarin.Forms.GoogleMaps.Bindings 5 | { 6 | [Preserve(AllMembers = true)] 7 | public sealed class BindingPinsBehavior : BehaviorBase 8 | { 9 | private static readonly BindablePropertyKey ValuePropertyKey = BindableProperty.CreateReadOnly("Value", typeof(ObservableCollection), typeof(BindingPinsBehavior), default(ObservableCollection)); 10 | 11 | public static readonly BindableProperty ValueProperty = ValuePropertyKey.BindableProperty; 12 | public ObservableCollection Value 13 | { 14 | get => (ObservableCollection)GetValue(ValueProperty); 15 | private set => SetValue(ValuePropertyKey, value); 16 | } 17 | 18 | protected override void OnAttachedTo(Map bindable) 19 | { 20 | base.OnAttachedTo(bindable); 21 | Value = bindable.Pins as ObservableCollection; 22 | } 23 | 24 | protected override void OnDetachingFrom(Map bindable) 25 | { 26 | base.OnDetachingFrom(bindable); 27 | Value = null; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.iOS/AppDelegate.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | 5 | using Foundation; 6 | using UIKit; 7 | 8 | namespace SampleApp.iOS 9 | { 10 | // The UIApplicationDelegate for the application. This class is responsible for launching the 11 | // User Interface of the application, as well as listening (and optionally responding) to 12 | // application events from iOS. 13 | [Register("AppDelegate")] 14 | public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate 15 | { 16 | // 17 | // This method is invoked when the application has loaded and is ready to run. In this 18 | // method you should instantiate the window, load the UI into it and then make the window 19 | // visible. 20 | // 21 | // You have 17 seconds to return from this method, or iOS will terminate your application. 22 | // 23 | public override bool FinishedLaunching(UIApplication app, NSDictionary options) 24 | { 25 | global::Xamarin.Forms.Forms.Init(); 26 | LoadApplication(new App()); 27 | 28 | return base.FinishedLaunching(app, options); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Source/Xamarin.Forms.GoogleMaps.Bindings/BindingCirclesBehavior.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.ObjectModel; 2 | using Xamarin.Forms.Internals; 3 | 4 | namespace Xamarin.Forms.GoogleMaps.Bindings 5 | { 6 | [Preserve(AllMembers = true)] 7 | public sealed class BindingCirclesBehavior : BehaviorBase 8 | { 9 | private static readonly BindablePropertyKey ValuePropertyKey = BindableProperty.CreateReadOnly("Value", typeof(ObservableCollection), typeof(BindingCirclesBehavior), default(ObservableCollection)); 10 | 11 | public static readonly BindableProperty ValueProperty = ValuePropertyKey.BindableProperty; 12 | public ObservableCollection Value 13 | { 14 | get => (ObservableCollection)GetValue(ValueProperty); 15 | private set => SetValue(ValuePropertyKey, value); 16 | } 17 | 18 | protected override void OnAttachedTo(Map bindable) 19 | { 20 | base.OnAttachedTo(bindable); 21 | Value = bindable.Circles as ObservableCollection; 22 | } 23 | 24 | protected override void OnDetachingFrom(Map bindable) 25 | { 26 | base.OnDetachingFrom(bindable); 27 | Value = null; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp.Android/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | using Android.App; 5 | 6 | // General Information about an assembly is controlled through the following 7 | // set of attributes. Change these attribute values to modify the information 8 | // associated with an assembly. 9 | [assembly: AssemblyTitle("SampleApp.Android")] 10 | [assembly: AssemblyDescription("")] 11 | [assembly: AssemblyConfiguration("")] 12 | [assembly: AssemblyCompany("")] 13 | [assembly: AssemblyProduct("SampleApp.Android")] 14 | [assembly: AssemblyCopyright("Copyright © 2014")] 15 | [assembly: AssemblyTrademark("")] 16 | [assembly: AssemblyCulture("")] 17 | [assembly: ComVisible(false)] 18 | 19 | // Version information for an assembly consists of the following four values: 20 | // 21 | // Major Version 22 | // Minor Version 23 | // Build Number 24 | // Revision 25 | [assembly: AssemblyVersion("1.0.0.0")] 26 | [assembly: AssemblyFileVersion("1.0.0.0")] 27 | 28 | // Add some common permissions, these can be removed if not needed 29 | [assembly: UsesPermission(Android.Manifest.Permission.Internet)] 30 | [assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)] 31 | -------------------------------------------------------------------------------- /Source/SampleApp/SampleApp/Views/MoveCameraPage.xaml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 |