用于从数据库信息启动应用程序的Apple URL Scheme

时间:2014-03-19 15:39:16

标签: objective-c sqlite

我对我遇到的问题感到非常沮丧,因为缺乏信息。我无法找到有关我的问题的任何信息,我开始相信我不想做我想做的事情。这是我的问题,谢谢你的阅读。

我希望我的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"]];

}

2 个答案:

答案 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位置”以使用用户的当前位置。