gpt4 book ai didi

iphone - 如何在 Xcode 中的 iPhone iOS 6 应用程序上获得从 A 到 B 的方向?

转载 作者:行者123 更新时间:2023-12-03 18:41:08 26 4
gpt4 key购买 nike

我想从 iOS < 6 更新一个使用 Google map 的应用。我的应用程序在 map 上有很多图钉,当用户点击其中一个图钉时,iPhone 会像共享应用程序一样调用 map ,以通过 native map 应用程序获取当前位置和目的地的方向。对于 iOS 6,相同的说明(下面发布)显然会打开 Safari 而不是 Google map 。我想编写一个 if 循环来检查设备上安装的 iOS:如果 < 6,则没有任何变化,如果 iOS > 6 那么......(打开新的苹果 map 并在那里获取方向)。

有人可以帮助我吗?

这是 iOS 6 之前的操作

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {

[self.navigationController pushViewController:[[UIViewController alloc] init] animated:YES];


NSString* addr = [NSString stringWithFormat:@"http://maps.google.com/maps?daddr=%1.6f,%1.6f&saddr=Posizione attuale", view.annotation.coordinate.latitude,view.annotation.coordinate.longitude];

NSURL* url = [[NSURL alloc] initWithString:[addr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:url];



}

最佳答案

我建议使用 [MKMapItem openMapsWithItems:],而不是在 iOS 6 中通过 URL 打开 map 应用程序。如果您使用 URL,您将无法传递“当前位置”,并且将失去进行转弯的能力 -逐向导航。 MKMapItem 有一个当前位置的特定项目,当传递该项目时,将使用当前位置作为源地址打开 map ,从而启用逐向导航。

- (void)openMapsWithDirectionsTo:(CLLocationCoordinate2D)to {
Class itemClass = [MKMapItem class];
if (itemClass && [itemClass respondsToSelector:@selector(openMapsWithItems:launchOptions:)]) {
MKMapItem *currentLocation = [MKMapItem mapItemForCurrentLocation];
MKMapItem *toLocation = [[MKMapItem alloc] initWithPlacemark:[[[MKPlacemark alloc] initWithCoordinate:to addressDictionary:nil] autorelease]];
toLocation.name = @"Destination";
[MKMapItem openMapsWithItems:[NSArray arrayWithObjects:currentLocation, toLocation, nil]
launchOptions:[NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:MKLaunchOptionsDirectionsModeDriving, [NSNumber numberWithBool:YES], nil]
forKeys:[NSArray arrayWithObjects:MKLaunchOptionsDirectionsModeKey, MKLaunchOptionsShowsTrafficKey, nil]]];
[toLocation release];
} else {
NSMutableString *mapURL = [NSMutableString stringWithString:@"http://maps.google.com/maps?"];
[mapURL appendFormat:@"saddr=Current Location"];
[mapURL appendFormat:@"&daddr=%f,%f", to.latitude, to.longitude];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:[mapURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];
}
}

关于iphone - 如何在 Xcode 中的 iPhone iOS 6 应用程序上获得从 A 到 B 的方向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12636707/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com