Sdílet prostřednictvím


Otevření aplikace mapy

Browse sample. Procházení ukázky

Tento článek popisuje, jak můžete použít rozhraní .NET Multi-Platform App UI (.NET MAUI). IMap Toto rozhraní umožňuje aplikaci otevřít nainstalovanou mapovou aplikaci na konkrétní místo nebo značku místa.

Výchozí implementace IMap rozhraní je k dispozici prostřednictvím Map.Default vlastnosti. Rozhraní IMap i Map třída jsou obsaženy v Microsoft.Maui.ApplicationModel oboru názvů.

Začínáme

Pro přístup k funkcím prohlížeče se vyžaduje následující nastavení specifické pro platformu.

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átoru URI. Google Mapy podporuje toto schéma.

V souboru Platforms/Android/AndroidManifest.xml přidejte do manifest uzlu následující queries/intent uzly:

<queries>
  <intent>
    <action android:name="android.intent.action.VIEW" />
    <data android:scheme="geo"/>
  </intent>
</queries>

Použití mapy

Funkce mapování funguje voláním IMap.OpenAsync metody a předáním instance Location nebo Placemark typu. Následující příklad otevře nainstalovanou aplikaci mapy v určitém umístění GPS:

public async Task NavigateToBuilding25()
{
    var location = new Location(47.645160, -122.1306032);
    var options = new MapLaunchOptions { Name = "Microsoft Building 25" };

    try
    {
        await Map.Default.OpenAsync(location, options);
    }
    catch (Exception ex)
    {
        // No map application available to open
    }
}

Tip

Placemark Typy Location jsou v Microsoft.Maui.Devices.Sensors oboru názvů.

Když k otevření mapy použijete příkaz a Placemark budete potřebovat další informace. Informace pomáhají mapové aplikaci hledat místo, které hledáte. Jsou vyžadovány následující informace:

public async Task NavigateToBuilding()
{
    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.Default.OpenAsync(placemark, options);
    }
    catch (Exception ex)
    {
        // No map application available to open or placemark can not be located
    }
}

Testování, jestli se mapa otevřela

Vždy existuje možnost, že se otevření aplikace mapy nezdařilo, například když aplikace mapy není nebo vaše aplikace nemá správná oprávnění. Pro každé IMap.OpenAsync přetížení metody existuje odpovídající metoda, která vrátí logickou IMap.TryOpenAsync hodnotu označující, že aplikace mapy byla úspěšně otevřena. Následující příklad kódu používá metodu TryOpenAsync k otevření mapy:

var location = new Location(47.645160, -122.1306032);
var options = new MapLaunchOptions { Name = "Microsoft Building 25" };

if (await Map.Default.TryOpenAsync(location, options) == false)
{
    // Map failed to open
}

Metody rozšíření

Pokud Microsoft.Maui.Devices.Sensors se obor názvů naimportuje, který automaticky provede nový projekt .NET MAUI, můžete k otevření mapy použít předdefinovanou metodu OpenMapsAsync rozšíření:

public async Task NavigateToBuildingByPlacemark()
{
    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 placemark.OpenMapsAsync(options);
    }
    catch (Exception ex)
    {
        // No map application available to open or placemark can not be located
    }
}

Přidání navigace

Když mapu otevřete, můžete vypočítat trasu z aktuálního umístění zařízení do zadaného umístění. MapLaunchOptions Předejte typ Map.OpenAsync metodě a určete režim navigace. Následující příklad otevře aplikaci mapy a určuje režim navigace v jízdě:

public async Task DriveToBuilding25()
{
    var location = new Location(47.645160, -122.1306032);
    var options = new MapLaunchOptions { Name = "Microsoft Building 25",
                                         NavigationMode = NavigationMode.Driving };

    try
    {
        await Map.Default.OpenAsync(location, options);
    }
    catch (Exception ex)
    {
        // No map application available to open
    }
}

Rozdíly mezi platformami

Tato část popisuje rozdíly specifické pro platformu s rozhraním API maps.

NavigationMode podporuje Bicycling, Driving, and Walking.