1

我一直在iOS5中绘制路线,但是由于应用程序必须升级到iOS6,它不允许在坐标位置之间绘制路线。我搜索了很多,但最终都是徒劳的。谁能帮我在iOS6中使用哪个api,因为谷歌地图不再支持了???

编辑:我以前使用 Google iOS SDK 来绘制将自动处理折线的路线。据我搜索,我将能够重定向到浏览器以显示路线和导航。但我需要在应用内绘制这个 [iOS6]。iOS6 是否自动进行路由,如果是,请分享一些代码以了解它的要点。这个代码示例我在 iOS5 中使用谷歌地图

// over lay map to draw route
    routeOverlayView = [[UICRouteOverlayMapView alloc] initWithMapView:routeMapView];
    diretions = [UICGDirections sharedDirections];

    UICGDirectionsOptions *options = [[UICGDirectionsOptions alloc] init];
//setting travel mode to driving
    options.travelMode = UICGTravelModeDriving;
    [diretions loadWithStartPoint:startPoint endPoint:endPoint options:options];

// Overlay polylines
    UICGPolyline *polyline = [directions polyline];
    NSArray *routePoints = [polyline routePoints];
        NSLog(@"routePoints %@",routePoints);

    [routeOverlayView setRoutes:routePoints];
4

2 回答 2

0

您正在使用第三方代码来绘制路线,而不是使用 MapKit 本身。您正在使用的库(我在 GitHub 上找到)已经两年没有更新了。

我建议您从该库移到更新的库。如果您愿意,可以考虑使用支持 iOS 6 的 Google 的 iOS Map SDK(链接在这里)。您可以将其与 Google 的 Directions API 结合使用,将折线直接绘制到地图上。或者您可以坚持使用MKMapView, 并再次使用折线直接在地图上绘制。

并不是 iOS 改变了它在地图上绘制折线的方式——而是你使用的第三方代码已经过时了。

于 2013-05-28T10:15:37.493 回答
0

我在我的应用程序中做了路由。我使用了 Google 地理编码 API(仅用于 iOS 6) https://developers.google.com/maps/documentation/geocoding/

像这样的东西:

- (void) sendRequestForLat: (CGFloat) lat lon: (CGFloat) lon
{
    NSString* request;
    NSInteger zoom = 12;

    NSString* location = [NSString stringWithFormat: @"%f,%f", lat, lon];

    NSString* daddr = [NSString stringWithFormat: @"%f,%f", myLat, myLon];
    request = [NSString stringWithFormat: @"saddr=%@&daddr=%@&zoom=%i&directionsmode=walking", location, daddr, zoom];

    NSString* typeMapsApp = isGoogleMapsAppPresent ? @"comgoogle" : @"";

    NSString* urlString = [NSString stringWithFormat: @"%@maps://?%@", typeMapsApp, request];
    [[UIApplication sharedApplication] openURL: [NSURL URLWithString: urlString]];
}
于 2013-05-28T10:30:35.320 回答