Fantacode.Plugin.CrossPlacePicker 2.0.0

Requires NuGet 2.8.1 or higher.

dotnet add package Fantacode.Plugin.CrossPlacePicker --version 2.0.0
NuGet\Install-Package Fantacode.Plugin.CrossPlacePicker -Version 2.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Fantacode.Plugin.CrossPlacePicker" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Fantacode.Plugin.CrossPlacePicker --version 2.0.0
#r "nuget: Fantacode.Plugin.CrossPlacePicker, 2.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Fantacode.Plugin.CrossPlacePicker as a Cake Addin
#addin nuget:?package=Fantacode.Plugin.CrossPlacePicker&version=2.0.0

// Install Fantacode.Plugin.CrossPlacePicker as a Cake Tool
#tool nuget:?package=Fantacode.Plugin.CrossPlacePicker&version=2.0.0

Cross Place Picker for Xamarin Android and iOS

Simple cross platform plugin to pick place using google maps with the help of Cross Platform API.

out.gif

Setup

Platform Support

Platform Supported Version
Xamarin.iOS Yes iOS 7+
Xamarin.Android Yes API 15+

API Usage

Call CrossPlacePicker.Current from any project or PCL to gain access to APIs.

Working

Calling PlacePicker Without Bounds

     try
          {
              var result = await CrossPlacePicker.Current.Display();
              if (result != null)
              {
                  await DisplayAlert(result.Name, "Latitude: " + result.Coordinates.Latitude + "\nLongitude: " + result.Coordinates.Longitude, "OK");
              }
          }
          catch (Exception ex)
          {
              await DisplayAlert("Error", ex.ToString(), "Oops");
          }

With Bounds

try
      {
          var southWest = new Coordinates(85, -180);
          var northEast = new Coordinates(-85, 180);
          var CoordinateBounds = new CoordinateBounds(southWest, northEast);
          var result = await CrossPlacePicker.Current.Display(CoordinateBounds);
      }
      catch (Exception ex)
      {
          await DisplayAlert("Error", ex.ToString(), "Oops");
      }

Important Permission and Setup Information

Please read these as they must be implemented for all platforms.

Android

The ACCESS_FINE_LOCATION permission is required.

  • In your AndroidManifest.xml file, add your API key in a meta-data tag (ensure you are within the <application> tag as follows:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
      android:name=".MainApplication"
      ...>
	<meta-data
		android:name="com.google.android.geo.API_KEY"
		android:value="YOUR_ANDROID_API_KEY_HERE"/>
	...
</application>
iOS

You must request permission to use location services. First add one or both of the following keys to your Info.plist file, to request 'when in use' or 'always' authorization: NSLocationWhenInUseUsageDescription NSLocationAlwaysUsageDescription For the place picker, it's enough to request 'when in use' authorization, but you may want to request 'always' authorization for other functionality in your app. For each key, add a string informing the user why you need the location services. For example: Such as:

<key>NSLocationWhenInUseUsageDescription</key>
<string>Show your location on the map</string>

If you want the dialogs to be translated you must support the specific languages in your app. Read the iOS Localization Guide

  • In your AppDelegate.cs file, import the Google Places library by adding using Google.Maps; on top of the file.
  • Within the FinishedLaunching method, instantiate the library as follows:
var apikey = "YOUR-API-KEY-HERE";
PlacesClient.ProvideApiKey(apikey);
MapServices.ProvideAPIKey(apikey);
Troubleshooting

Incase if the place picker is not launching or automatically being hidden, please make sure that you have generated API key from Google Developer Console. If you are facing any other problem, please open an issue with Application Output. Google Signup and API Keys

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp1.0 was computed.  netcoreapp1.1 was computed.  netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard1.0 is compatible.  netstandard1.1 was computed.  netstandard1.2 was computed.  netstandard1.3 was computed.  netstandard1.4 was computed.  netstandard1.5 was computed.  netstandard1.6 was computed.  netstandard2.0 was computed.  netstandard2.1 was computed. 
.NET Framework net45 was computed.  net451 was computed.  net452 was computed.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed.  monoandroid10 is compatible. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen30 was computed.  tizen40 was computed.  tizen60 was computed. 
Universal Windows Platform uap was computed.  uap10.0 was computed. 
Windows Phone wp8 was computed.  wp81 was computed.  wpa81 was computed. 
Windows Store netcore was computed.  netcore45 was computed.  netcore451 was computed. 
Xamarin.iOS xamarinios was computed.  xamarinios10 is compatible. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.0 6,430 2/14/2018
1.0.3 2,786 8/2/2017
1.0.2 2,097 6/17/2017
1.0.1 1,036 6/17/2017
1.0.0 875 6/17/2017