仅使用Apple地图获取路线

时间:2013-02-01 12:43:46

标签: ios map navigation mkpinannotationview apple-maps

我在我的应用程序中有一个mapview,我正在使用苹果地图我阅读here Mapkit可以提供方向详细信息,就像在Mapview上我使用当前位置和纬度/经度而我想要那个用户可以从当前位置获取行车路线到他输入的指定纬度/经度,这样当我点击按钮方法或标注方法时,他就可以轻松地在下一个视图上获得行车路线......

-(void)getDirection

所以在下一个视图中它应该显示到那个地方的行车路线,请任何人帮我解决这个问题我是初学者,我从来没有用mapview做过那么多,任何人都可以提供给我一些提示或代码片段对我非常有帮助。 或者,如果我可以做一些像this这样的事情,但我不知道如何用我的项目做到这一点。

enter image description here

2 个答案:

答案 0 :(得分:0)

使用此代码前两个是目标纬度经度其他是源 此代码重定向你在苹果地图上,并显示路线,如果可用。

  NSString *urlString = [NSString stringWithFormat:@"http://maps.apple.com/?daddr=%f,%f,&saddr=%f,%f",_desLatitude,_desLongitude,_latitude,_longitude];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];

答案 1 :(得分:0)

   if (SYSTEM_VERSION_LESS_THAN(@"6.0")) {
       NSString* addr = [NSString stringWithFormat:@"http://maps.apple.com/maps?daddr=%1.6f,%1.6f&saddr=%1.6f,%1.6f",pin_lat,pin_long,mapView.userLocation.coordinate.latitude,mapView.userLocation.coordinate.longitude];

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

    else {
        NSString* addr = [NSString stringWithFormat:@"http://maps.apple.com/maps?daddr=%1.6f,%1.6f&saddr=%1.6f,%1.6f",pin_lat,pin_long,mapView.userLocation.coordinate.latitude,mapView.userLocation.coordinate.longitude];
        NSURL* url = [[NSURL alloc] initWithString:[addr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
        [[UIApplication sharedApplication] openURL:url];


    }   
}
else if ([buttonTitle isEqualToString:@"Google Maps"]) {
    NSLog(@"Other 2 pressed");
    //choose existing

    if (SYSTEM_VERSION_LESS_THAN(@"6.0")) {
        NSString* addr = [NSString stringWithFormat:@"http://maps.google.com/maps?daddr=%1.6f,%1.6f&saddr=%1.6f,%1.6f",pin_lat,pin_long,mapView.userLocation.coordinate.latitude,mapView.userLocation.coordinate.longitude];

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

    else {
        NSString* addr = [NSString stringWithFormat:@"http://maps.google.com/maps?daddr=%1.6f,%1.6f&saddr=%1.6f,%1.6f",pin_lat,pin_long,mapView.userLocation.coordinate.latitude,mapView.userLocation.coordinate.longitude];
        NSURL* url = [[NSURL alloc] initWithString:[addr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
        [[UIApplication sharedApplication] openURL:url];


    }


} 

其中pin_lat和pin_long是浮点值,包含place的值。