The Maps class is available in Xamarin.Essentials API. It is used to open the installed Maps application to a specific location or placemark. Android, iOS, and UWP offer unique operating systems and platform APIs that developers can have access to all in C# leveraging Xamarin. Xamarin.Essentials provides a single cross-platform API that works with any Xamarin.Forms, Android, iOS, or UWP application that can be accessed from shared code no matter how the user interface is created.
Reading this article, you can learn how to open the installed Maps application to a specific location or placemark in Xamarin.Forms application using Xamarin Essentials for Android and Universal Windows Platform with XAML and Visual C# in cross-platform application development.
The following important tools are required for developing Xamarin Forms App,
- Windows 10 (Recommended)
- Visual Studio 2017
- Android API 19 or higher and UWP 10.0.16299.0 or higher.
Now, we can discuss step by step App development.
Step 1
Open Visual Studio 2017 -> Start -> New Project-> Select Cross-Platform (under Visual C#-> Mobile App (Xamarin.Forms)-> Give the Suitable Name for your App (XamFormMaps) ->OK.
Step 2
Select the Cross-Platform template as a Blank APP ->Set Platform as Android and UWP and code sharing strategy as .NET standard. Afterward, Visual Studio creates 3 projects (Portable, Android, UWP).
Step 3
For adding a reference, right-click your solution (XamFormMaps) and select "Manage NuGet Packages".
For adding Xamarin.Essentials reference, choose Browse and search for Xamarin.Essentials. Select the package and select all the projects (portable, Android, UWP) and install it.
Step 4
Add the Label, Entry, and Button controls in Mainpage.Xaml for Title, Latitude, Longtitude, and Name.
- <Label FontAttributes="Bold" Text=" Open a Specific location using Maps in Xamarin Forms application using Xamarin Essentials for Android and UWP" VerticalOptions="Center" HorizontalOptions="Center" />
- <Entry x:Name="entLong" Placeholder="Enter the Longtitude here" />
- <Entry x:Name="entLat" Placeholder="Enter the Latitude here" />
- <Entry x:Name="entName" Placeholder="Enter the Name of the location here" />
- <Button x:Name="btnclick" Text="Click" Clicked="btn_clicked" />
Step 5
Add the following code in MainActivity.cs in XamFormMaps.Android project.
In onCreate() method.
- Xamarin.Essentials.Platform.Init(this, savedInstanceState);
Also, add the below method.
- publicoverridevoid OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults) {
- Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
- base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
- }
Step 6
Add the following namespace and code in Mainpage.Xaml.cs.
- using Xamarin.Essentials;
- publicvoid btn_clicked(object sender, System.EventArgs e) {
- var location = new Location(Convert.ToDouble(entLat.Text), Convert.ToDouble(entLong.Text));
- var options = new MapsLaunchOptions {
- Name = entName.Text
- };
- Maps.OpenAsync(location, options);
- }
Note
Automatically, the following code will be generated in XAML code view, while we are done in the design view.
- <?xml version="1.0" encoding="utf-8" ?>
- <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:XamFormMaps" x:Class="XamFormMaps.MainPage">
- <StackLayout>
- <Label FontAttributes="Bold" Text=" Open a Specific location using Maps in Xamarin Forms application using Xamarin Essentials for Android and UWP" VerticalOptions="Center" HorizontalOptions="Center" />
- <Entry x:Name="entLong" Placeholder="Enter the Longtitude here" />
- <Entry x:Name="entLat" Placeholder="Enter the Latitude here" />
- <Entry x:Name="entName" Placeholder="Enter the Name of the location here" />
- <Button x:Name="btnclick" Text="Click" Clicked="btn_clicked" />
- </StackLayout>
- </ContentPage>
Step 7
Deploy your app in UWP and Android. The output of the XamFormMaps App is.
After entering Longitude, Latitude, and Name -
After clicking the Click button -
Summary
Now, you have successfully opened the specific location using Maps in Xamarin.Forms application using Xamarin.Essentials for Android and Universal Windows Platform using Visual C# and Xamarin.