Bagikan melalui


Buka aplikasi peta

Browse sample. Telusuri sampel

Artikel ini menjelaskan cara menggunakan antarmuka .NET Multi-platform App UI (.NET MAUI). IMap Antarmuka ini memungkinkan aplikasi untuk membuka aplikasi peta yang diinstal ke lokasi atau tanda tempat tertentu.

Implementasi IMap default antarmuka tersedia melalui Map.Default properti . IMap Antarmuka dan Map kelas terkandung dalam Microsoft.Maui.ApplicationModel namespace layanan.

Mulai

Untuk mengakses fungsionalitas browser, diperlukan penyiapan khusus platform berikut.

Android menggunakan geo: skema URI untuk meluncurkan aplikasi peta di perangkat. Ini dapat meminta pengguna untuk memilih dari aplikasi yang ada yang mendukung skema URI ini. Google Peta mendukung skema ini.

Dalam file Platforms/Android/AndroidManifest.xml, tambahkan simpul berikut queries/intent ke simpulmanifest:

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

Menggunakan peta

Fungsionalitas peta berfungsi dengan memanggil IMap.OpenAsync metode , dan meneruskan instans Location atau Placemark jenis. Contoh berikut membuka aplikasi peta yang diinstal di lokasi GPS tertentu:

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

Jenis Location dan Placemark berada di Microsoft.Maui.Devices.Sensors namespace layanan.

Saat Anda menggunakan Placemark untuk membuka peta, informasi lebih lanjut diperlukan. Informasi ini membantu aplikasi peta mencari tempat yang Anda cari. Informasi berikut diperlukan:

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
    }
}

Menguji apakah peta dibuka

Selalu ada kemungkinan bahwa membuka aplikasi peta gagal, seperti ketika tidak ada aplikasi peta atau aplikasi Anda tidak memiliki izin yang benar. Untuk setiap IMap.OpenAsync metode kelebihan beban, ada metode yang IMap.TryOpenAsync sesuai, yang mengembalikan nilai Boolean yang menunjukkan bahwa aplikasi peta berhasil dibuka. Contoh kode berikut menggunakan TryOpenAsync metode untuk membuka peta:

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
}

Metode ekstensi

Selama Microsoft.Maui.Devices.Sensors namespace layanan diimpor, yang dilakukan proyek .NET MAUI baru secara otomatis, Anda dapat menggunakan metode OpenMapsAsync ekstensi bawaan untuk membuka peta:

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
    }
}

Tambahkan navigasi

Saat membuka peta, Anda dapat menghitung rute dari lokasi perangkat saat ini ke lokasi yang ditentukan. Teruskan MapLaunchOptions jenis ke Map.OpenAsync metode , menentukan mode navigasi. Contoh berikut membuka aplikasi peta dan menentukan mode navigasi mengemudi:

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
    }
}

Perbedaan platform

Bagian ini menjelaskan perbedaan khusus platform dengan API peta.

NavigationMode mendukung Bersepeda, Mengemudi, dan Berjalan.