我对我遇到的问题感到非常沮丧,因为缺乏信息。我无法找到有关我的问题的任何信息,我开始相信我不想做我想做的事情。这是我的问题,谢谢你的阅读。
我希望我的ViewController上的按钮能够从存储在我的Sqlite数据库表中的经度和纬度坐标中打开Apple Maps。我已经能够通过添加MapView成功地做到这一点。我想重现此功能,让用户可以点击“获取路线”#34;按钮,它将弹出Apple Maps应用程序并自动设置结束地址。通过使用@" finishLat"和@" finishLng"我能够收集数据库信息。使用Apple URL Scheme时是否可以这样做?
这是Mapview对信息的处理示例。我想要的唯一部分是@" finishLat"和@" finishLng"。我还需要使用" Run"功能以及收集正确的地址。
[super viewDidLoad];
CGRect bounds = self.view.bounds;
mapview = [[MapView alloc] initWithFrame:CGRectMake(0, 0, bounds.size.width, bounds.size.height)];
[self.view addSubview:mapview];
NSArray *result = [_runs objectForKey:@"results"];
NSDictionary *arr = [result objectAtIndex:0];
arr = [arr objectForKey:@"run"];
NSMutableArray *arrPlaces = [[NSMutableArray alloc] init];
NSArray *arrDirvers = [arr objectForKey:@"drivers"];
for (int i =0; i < [arrDirvers count]; i++) {
NSDictionary *asdfg = [arrDirvers objectAtIndex:i];
Place *startPt = [[Place alloc] init];
Place *endPt = [[Place alloc] init];
NSString *temp = [asdfg objectForKey:@"startLat"];
startPt.latitude = [temp floatValue];
temp = [asdfg objectForKey:@"startLng"];
startPt.longitude = [temp floatValue];
startPt.name = [asdfg objectForKey:@"name"];
temp = [asdfg objectForKey:@"finishLat"];
endPt.latitude = [temp floatValue];
temp = [asdfg objectForKey:@"finishLng"];
endPt.longitude = [temp floatValue];
endPt.name = [asdfg objectForKey:@"name"];
[arrPlaces addObject:startPt];
[arrPlaces addObject:endPt];
这就是我所拥有的。
- (IBAction)GetDirections:(id)sender {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"http://maps.apple.com/?q"]];
}
答案 0 :(得分:0)
您可以创建openURL:
的实例并使用MKMapItem
,而不是使用openInMapsWithLaunchOptions:
。您可以提供MKLaunchOptionsDirectionsModeKey
选项,以便从用户当前位置请求路线。
或者,使用openMapsWithItems:launchOptions:
在两个已知位置之间导航。
答案 1 :(得分:0)
要在Apple Maps应用中打开,请使用:
- (IBAction)GetDirections:(id)sender
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"http://maps.apple.com/?ll=<lattitude>,<longitude>"]];
}
如果您想将Apple Maps打开到行车路线屏幕,则需要使用此网址:
http://maps.apple.com/?saddr=<origin>&daddr=<destination>
您还可以将其中一个设置为“当前%20位置”以使用用户的当前位置。