ios - map 链接快速回到用户位置

标签 ios objective-c

我一直在解决这个问题:在我的应用程序中,我使用一个链接在特定坐标处打开 Apple map 应用程序。然而,问题是当我的应用程序和 map 应用程序第一次打开时, map 会快速返回到用户的位置。我已经阅读了很多关于这个主题的问题,但它们都使用 mapKit 而不是共享应用程序,所以这对我帮助不大。

我使用 UIApplication 对象打开应用程序。我的完整代码:

UIApplication *maps = [UIApplication sharedApplication];
    float latitude = 52.379189;
    float longitude = 4.899431;
    NSURL *mapsURL = [NSURL URLWithString:[NSString stringWithFormat:@"http://maps.apple.com/?sll=%f,%f&z=10", latitude, longitude]];
    if ([maps canOpenURL:mapsURL]) {
        [maps openURL:mapsURL options:@{} completionHandler:nil];
    } else {
        NSLog(@"Can't open the maps app");
    }

有关 map 链接约定的更多信息,请查看 this link

关于如何解决这个问题有什么想法吗?我应该放弃这个方法并改用 mapKit 吗?提前致谢!

最佳答案

找到了!我使用了 MapKit 类中的构建。我现在使用这段代码:

float latitude = 52.379189;
float longitude = 4.899431;

MKPlacemark *location = [[MKPlacemark alloc] initWithCoordinate:CLLocationCoordinate2DMake(latitude, longitude)];
MKMapItem *maps = [[MKMapItem alloc] initWithPlacemark:location];
[maps setName:@"Site x"];
[maps openInMapsWithLaunchOptions:nil];

另一个好处是您可以指定位置的名称,并且在 map 应用程序中您可以轻松地创建到该位置的路线。

关于ios - map 链接快速回到用户位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43680014/

相关文章:

ios - 更改整个应用程序中的字体大小

通过 SSL 的 iOS 12 App REST 调用在与自定义 CA 证书交换证书时失败

objective-c - 连续的 'if' 语句

ios - BarButtonItem 上显示的 UIAlertController 未正确居中

ios - xCode - 如何从工作区链接动态框架

objective-c - NSAttributeDescription,访问可选属性

ios - 在两个不相关的ViewController之间传递数据

objective-c - 异步更新 NSTableView 数据源

iphone - 如何将手势识别器添加到多个按钮?

ios - 如何获取主包中子文件夹的路径?