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地图,导航和地铁应用程序的所有网址方案。

Yandex Maps

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"]];
}

Yandex Navi

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"]];
}

Yandex Metro

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地图的主要内容,如果未能解决你的问题,请参考以下文章

Yandex 地图套件 Android

是否可以在 Android 的地图中隐藏 Yandex 徽标?

如何在 Yandex 地图套件中查找用户坐标?

在 iOS 上启动 BlueJeans 应用程序的 URL 方案?

谷歌地图跨平台网址在“应用内导航”后无法在 Android 上加载路线

如何获取 Yandex 全景图像