It has been long since I have updated my blog, here is a new post for Xamarin community 🙂
You might have come across different needs for selecting location in your apps, and might have resorted of developing Custom Renderer in case of Xamarin.Forms app.
I have developed an open source plugin for Xamarin to make this process easier. If you are interested in helping me out to extend the plugin, you can start contributing here: https://github.com/muhaym/crossplacepicker
One line of code, you will get Google Place Picker in your application.
Let’s get into step:
Step 1: Install Nuget to all projects in solutions (ie. in Shared PCL and Platform Specific projects)
https://www.nuget.org/packages/Fantacode.Plugin.CrossPlacePicker/
Step 2: Sign up for Google Maps Key at https://developers.google.com/places/android-api/signup
Step 3:
Follow Platform setup guide from
https://github.com/muhaym/crossplacepicker#important-permission-and-setup-information
Step 4:
Wherever you require place picker, use
1 2 3 4 5 6 7 8 9 10 11 12 |
try { var result = await CrossPlacePicker.Current.Display(); if (result != null) { await DisplayAlert(result.Name, "Latitude: " + result.Coordinates.Latitude + "\nLongitude: " + result.Coordinates.Longitude, "OK"); // Xamarin Forms } } catch (Exception ex) { await DisplayAlert("Error", ex.ToString(), "Oops"); } |
If you want to set initial map screen to specific bounds, use
1 2 3 4 5 6 7 8 9 10 11 |
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"); } |
If you face any issues, comment here, or in issues tracker at github https://github.com/muhaym/crossplacepicker/issues
Sample for this plugin used in and Xamarin.Forms project can be found here
https://github.com/muhaym/CrossPlacePicker/tree/master/samples/PlacePickerForms