iOS - 使用路线URL方案启动Yandex地图
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS - 使用路线URL方案启动Yandex地图相关的知识,希望对你有一定的参考价值。
是否有一个URL-Scheme用于启动带有路线的Yandex地图应用程序? 我可以使用几行代码启动Yandex Maps应用程序(如果已安装),但我没有找到有关应用程序处理的URLSchemes的文档:
NSURL *url = [NSURL URLWithString:@"yandexmaps://maps.yandex.ru/"];
if([[UIApplication sharedApplication] canOpenURL:url]){
[[UIApplication sharedApplication] openURL:url];
}
实际上,截至今天这是误导性的,有一个URL方案来获取方向。
yandexmaps:// build_route_on_map / PARAMS
例:
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"yandexmaps://build_route_on_map/?lat_from=59.967870&lon_from=30.242658&lat_to=59.898495&lon_to=30.299559"]];
lat_from和lon_from是可选的,当没有提供它们时使用当前位置。不要忘记检查是否安装了yandex.maps应用程序
NSURL *callUrl = [NSURL URLWithString:@"yandexmaps://"];
if ([[UIApplication sharedApplication] canOpenURL:callUrl])
{
//Yandex.Maps app is installed
}
Documentation(俄文)
还有另一个Yandex制图应用程序Yandex.Navigator支持指示。如果您可以接受这样的解决方案,那么您可以使用如下方案:
yandexnavi://build_route_on_map?lat_from=55.751802&lon_from=37.586684&lat_to=55.758192&lon_to=37.642817
访问here了解详情。
这不是ios特定的,但我希望它可以帮助寻找Yandex路线URL的人,因为我花了太长时间才找到它。所以对于一个Web应用程序我使用了这个
https://yandex.ru/maps?rtext=FROM~TO&rtt=auto
其中FROM或TO是可选的,以及rtt
参数。所以你可以使用
https://yandex.ru/maps?rtext=~Berlin
引导某人到柏林的任何地方。
将支持谷歌地图支持的网络应用移植到Yandex我正在寻找谷歌地图方向链接https://www.google.com/maps/dir/FROM/TO
的等效链接,最后在SO上找到了这个链接。 @NKorotkov回答的文档链接让我在这里:https://tech.yandex.ru/yandex-apps-launch/maps/doc/concepts/yandexmaps-ios-app-docpage/#buildroute
这有效:"yandexnavi://build_route_on_map?lat_to=" + latvalu + "&lon_to=" + longvalue
斯威夫特5
如果您需要打开Yandex Navi,您可以这样使用;
1-你应该像这样将'yandexnavi'添加到info.plist;
<key>LSApplicationQueriesSchemes</key>
<array>
<string>yandexnavi</string>
</array>
2-你应该检查应用程序是否已安装;
UIApplication.shared.canOpenURL(URL(string: "yandexnavi://")!)
3-你应该用lat&long打开Yandex Navi;
let url = URL(string: "yandexnavi://build_route_on_map?lat_to=" + "(lat)" + "&lon_to=" + "(long)")
UIApplication.shared.open(url, options: [:], completionHandler: nil)
尝试:
yandexmaps://maps.yandex.ru/?
你可以添加像这样的参数
yandexmaps://maps.yandex.ru/?ll = 37.5959049,55.7390474&z = 12其中ll - >将在屏幕上显示的地理中心z->是缩放值
更多信息在这里,但它是俄语:http://clubs.ya.ru/mobilemaps/replies.xml?item_no=53530
更新:根据网站:
不幸的是,适用于iOS的Yandex地图应用程序不支持通过URL方案导航
@"yandexmaps://maps.yandex.ru/?pt={0},{1}"
您可以从Intents and URL Schemes部分查看俄语技术文档
您将看到yandex地图,导航和地铁应用程序的所有网址方案。
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"yandexmaps://"]]) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"yandexmaps://maps.yandex.ru/?ll=37.62,55.75&z=12"]];
} else {
// Открываем страницу приложения Яндекс.Карты в App Store.
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"https://itunes.apple.com/ru/app/yandex.maps/id313877526?mt=8"]];
}
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"yandexnavi://"]]) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"yandexnavi://"]];
} else {
// Открывает страницу приложения Яндекс.Навигатор в App Store.
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"https://itunes.apple.com/ru/app/yandex.navigator/id474500851"]];
}
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"yandexmetro://"]])
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"yandexmetro://?alias=moscow"]];
}
else
{
// Открываем страницу приложения Яндекс.Метро в App Store.
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"https://itunes.apple.com/ru/app/yandex.maps/id313877526?mt=8"]];
}
以上是关于iOS - 使用路线URL方案启动Yandex地图的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 Android 的地图中隐藏 Yandex 徽标?
在 iOS 上启动 BlueJeans 应用程序的 URL 方案?