Xamarin.Essentials:Mapa
Třída Map umožňuje aplikaci otevřít nainstalovanou mapovou aplikaci na konkrétní místo nebo značku místa.
Začínáme
Pokud chcete začít používat toto rozhraní API, přečtěte si úvodní příručkuXamarin.Essentials, abyste měli jistotu, že je knihovna správně nainstalovaná a nastavená ve vašich projektech.
Použití mapy
Přidejte do Xamarin.Essentials předmětu odkaz:
using Xamarin.Essentials;
Funkce Map funguje voláním OpenAsync
metody s Location
volitelným MapLaunchOptions
nebo Placemark
otevřeným .
public class MapTest
{
public async Task NavigateToBuilding25()
{
var location = new Location(47.645160, -122.1306032);
var options = new MapLaunchOptions { Name = "Microsoft Building 25" };
try
{
await Map.OpenAsync(location, options);
}
catch (Exception ex)
{
// No map application available to open
}
}
}
Při otevření pomocí ou Placemark
, jsou vyžadovány následující informace:
CountryName
AdminArea
Thoroughfare
Locality
public class MapTest
{
public async Task NavigateToBuilding25()
{
var placemark = new Placemark
{
CountryName = "United States",
AdminArea = "WA",
Thoroughfare = "Microsoft Building 25",
Locality = "Redmond"
};
var options = new MapLaunchOptions { Name = "Microsoft Building 25" };
try
{
await Map.OpenAsync(placemark, options);
}
catch (Exception ex)
{
// No map application available to open or placemark can not be located
}
}
}
Metody rozšíření
Pokud již máte odkaz na metodu Location
nebo Placemark
, můžete použít integrovanou metodu OpenMapAsync
rozšíření s volitelným kódem MapLaunchOptions
:
public class MapTest
{
public async Task OpenPlacemarkOnMap(Placemark placemark)
{
try
{
await placemark.OpenMapAsync();
}
catch (Exception ex)
{
// No map application available to open
}
}
}
Režim navigačních pokynů
Pokud zavoláte bez jakéhokoli MapLaunchOptions
voláníOpenMapAsync
, mapa se spustí do zadaného umístění. Volitelně můžete mít navigační trasu vypočítanou z aktuální pozice zařízení. Toho dosáhnete nastavením na NavigationMode
MapLaunchOptions
:
public class MapTest
{
public async Task NavigateToBuilding25()
{
var location = new Location(47.645160, -122.1306032);
var options = new MapLaunchOptions { NavigationMode = NavigationMode.Driving };
await Map.OpenAsync(location, options);
}
}
Rozdíly mezi platformami
Specifika implementace platformy
Android používá schéma identifikátoru geo:
URI ke spuštění aplikace mapy na zařízení. To může uživatele vyzvat k výběru z existující aplikace, která podporuje toto schéma identifikátorů URI. Xamarin.Essentials je testován s Google Maps, který podporuje toto schéma.