Harita uygulamasını açma
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.