iOS - 使用路线URL方案启动Yandex地图

时间:2014-03-02 12:58:48

标签: ios maps url-scheme directions yandex

是否有用于启动带有路线的Yandex地图应用程序的URL方案?

我可以使用几行代码启动Yandex Maps应用程序(如果已安装),但我没有找到有关应用程序处理的URLSchemes的文档:

NSURL *url = [NSURL URLWithString:@"yandexmaps://maps.yandex.ru/"];

if([[UIApplication sharedApplication] canOpenURL:url]){
    [[UIApplication sharedApplication] openURL:url];
}

8 个答案:

答案 0 :(得分:4)

还有另一个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了解详情。

答案 1 :(得分:4)

实际上,截至今天这是误导性的,有一个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(俄文)

答案 2 :(得分:2)

这不是特定于iOS的,但我希望它可以帮助寻找Yandex路线网址的人,因为我花了太长时间才找到它。因此,对于我使用此网页应用

https://yandex.ru/maps?rtext=FROM~TO&rtt=auto

其中FROM或TO是可选的,以及rtt参数。所以你可以使用

https://yandex.ru/maps?rtext=~Berlin

引导某人到柏林的任何地方。

将支持Google地图支持的网络应用移植到Yandex我正在寻找Google地图广告链接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

答案 3 :(得分:1)

这有效:"yandexnavi://build_route_on_map?lat_to=" + latvalu + "&lon_to=" + longvalue

答案 4 :(得分:1)

快速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)

答案 5 :(得分:0)

尝试:

  

yandexmaps://maps.yandex.ru/

您可以添加

等参数
  

yandexmaps://maps.yandex.ru/ LL = 37.5959049,55.7390474&安培; Z = 12   ll - &gt;将在屏幕上显示的地理中心   Z-&GT;是缩放值

更多信息在这里,但它是俄语:http://clubs.ya.ru/mobilemaps/replies.xml?item_no=53530

<强>更新 根据网站:

  

不幸的是,适用于iOS的Yandex地图应用程序不支持导航   通过URL方案

答案 6 :(得分:0)

open

答案 7 :(得分:0)

您可以从Intents and URL Schemes部分中以俄语查看技术文档

您将看到yandex地图,navi和Metro应用程序的所有url方案。

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