Aracılığıyla paylaş


Yerel Harita Uygulamasını başlatma Xamarin.Forms

Her platformdaki yerel harita uygulaması, sınıfı tarafından Xamarin.EssentialsLauncher bir Xamarin.Forms uygulamadan başlatılabilir. Bu sınıf, bir uygulamanın özel URI düzeni aracılığıyla başka bir uygulama açmasına olanak tanır. Başlatıcı işlevi yöntemiyle OpenAsync çağrılabilir ve açılacak özel URL düzenini temsil eden bir string veya Uri bağımsız değişkeni geçirilebilir. hakkında Xamarin.Essentialsdaha fazla bilgi için bkz Xamarin.Essentials. .

Not

sınıfını kullanmanın bir alternatifi Xamarin.EssentialsLauncher , sınıfını Map kullanmaktır. Daha fazla bilgi için bkz Xamarin.Essentials. Harita.

Her platformdaki haritalar uygulaması benzersiz bir özel URI şeması kullanır. iOS'ta haritalar URI şeması hakkında daha fazla bilgi için bkz . developer.apple.com harita bağlantıları . Android'de haritalar URI şeması hakkında bilgi için bkz. Haritalar Geliştirici Kılavuzu ve developers.android.com'da Android için Google Haritalar Amaçları. Evrensel Windows Platformu (UWP) üzerindeki haritalar URI düzeni hakkında bilgi için bkz. Windows Haritalar uygulamasını başlatma.

Harita uygulamasını belirli bir konumda başlatma

Yerel haritalar uygulamasındaki bir konum, her harita uygulaması için özel URI düzenine uygun sorgu parametreleri eklenerek açılabilir:

if (Device.RuntimePlatform == Device.iOS)
{
    // https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html
    await Launcher.OpenAsync("http://maps.apple.com/?q=394+Pacific+Ave+San+Francisco+CA");
}
else if (Device.RuntimePlatform == Device.Android)
{
    // open the maps app directly
    await Launcher.OpenAsync("geo:0,0?q=394+Pacific+Ave+San+Francisco+CA");
}
else if (Device.RuntimePlatform == Device.UWP)
{
    await Launcher.OpenAsync("bingmaps:?where=394 Pacific Ave San Francisco CA");
}

Bu örnek kod, yerel harita uygulamasının her platformda başlatılmasına ve haritanın belirtilen konumu temsil eden bir pin üzerinde ortalanmasıyla sonuçlanır:

iOS ve Android'de yerel harita uygulamasının ekran görüntüsü

Yol tarifleriyle harita uygulamasını başlatma

Yerel haritalar uygulaması, her harita uygulaması için özel URI düzenine uygun sorgu parametreleri eklenerek yol tarifleri görüntülenerek başlatılabilir:

if (Device.RuntimePlatform == Device.iOS)
{
    // https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html
    await Launcher.OpenAsync("http://maps.apple.com/?daddr=San+Francisco,+CA&saddr=cupertino");
}
else if (Device.RuntimePlatform == Device.Android)
{
    // opens the 'task chooser' so the user can pick Maps, Chrome or other mapping app
    await Launcher.OpenAsync("http://maps.google.com/?daddr=San+Francisco,+CA&saddr=Mountain+View");
}
else if (Device.RuntimePlatform == Device.UWP)
{
    await Launcher.OpenAsync("bingmaps:?rtp=adr.394 Pacific Ave San Francisco CA~adr.One Microsoft Way Redmond WA 98052");
}

Bu örnek kod, yerel harita uygulamasının her platformda başlatılmasına ve haritanın belirtilen konumlar arasındaki bir rotada ortalanmasının sonucunu verir:

iOS ve Android'de yerel harita uygulama yolunun ekran görüntüsü