Aracılığıyla paylaş


Harita uygulamasını açma

Browse sample. Örneğe göz atın

Bu makalede .NET Çok Platformlu Uygulama Kullanıcı Arabirimi (.NET MAUI) IMap arabirimini nasıl kullanabileceğiniz açıklanmaktadır. Bu arabirim, bir uygulamanın yüklü harita uygulamasını belirli bir konuma veya yer işaretine açmasını sağlar.

Arabirimin IMap varsayılan uygulaması özelliği aracılığıyla Map.Default kullanılabilir. IMap Hem arabirim hem Map de sınıf ad alanında Microsoft.Maui.ApplicationModel yer alır.

Başlarken

Tarayıcı işlevselliğine erişmek için aşağıdaki platforma özgü kurulum gereklidir.

Android, cihazda haritalar uygulamasını başlatmak için URI düzenini kullanır geo: . Bu, kullanıcıdan bu URI düzenini destekleyen mevcut bir uygulamadan seçim istemesini isteyebilir. Google Haritalar bu düzeni destekler.

Platforms/Android/AndroidManifest.xml dosyasında düğüme aşağıdaki queries/intent düğümleri manifest ekleyin:

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

Haritayı kullanma

Eşleme işlevi, yöntemini çağırarak IMap.OpenAsync ve veya Placemark türünün bir örneğini Location geçirerek çalışır. Aşağıdaki örnek, yüklü harita uygulamasını belirli bir GPS konumunda açar:

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

Bahşiş

Location ve Placemark türleri ad alanındadırMicrosoft.Maui.Devices.Sensors.

Haritayı açmak için bir Placemark kullandığınızda daha fazla bilgi gerekir. Bilgiler, harita uygulamasının aradığınız yeri aramasını sağlar. Aşağıdaki bilgiler gereklidir:

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

Haritanın açılıp açılmadiğini test etme

Harita uygulaması olmadığında veya uygulamanızın doğru izinlere sahip olmaması gibi durumlarda harita uygulamasını açmanın her zaman başarısız olma olasılığı vardır. Her IMap.OpenAsync yöntem aşırı yüklemesi için, eşleme uygulamasının başarıyla açıldığını belirten bir Boole değeri döndüren ilgili IMap.TryOpenAsync bir yöntem vardır. Aşağıdaki kod örneği, eşlemeyi TryOpenAsync açmak için yöntemini kullanır:

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
}

Genişletme yöntemleri

Yeni bir .NET MAUI projesinin Microsoft.Maui.Devices.Sensors otomatik olarak yaptığı ad alanı içeri aktarıldığı sürece, haritayı açmak için yerleşik uzantı yöntemini OpenMapsAsync kullanabilirsiniz:

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

Gezinti seçeneği ekleme

Haritayı açtığınızda, cihazın geçerli konumundan belirtilen konuma giden yolu hesaplayabilirsiniz. MapLaunchOptions Gezinti modunu belirterek türünü Map.OpenAsync yöntemine geçirin. Aşağıdaki örnek harita uygulamasını açar ve sürüş gezinti modunu belirtir:

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

Platform farklılıkları

Bu bölümde, haritalar API'siyle platforma özgü farklılıklar açıklanmaktadır.

NavigationMode Bisiklet, Sürüş ve Yürümeyi destekler.