Как рисовать маршруты в картах ios6?

Я рисовал маршруты в iOS5, но поскольку приложение должно быть обновлено до iOS6, оно не позволяет рисовать маршруты между точками с координатами. Я много искал, но в итоге напрасно. Может ли кто-нибудь помочь мне, какой API использовать в iOS6, так как карты Google больше не поддерживаются ???

РЕДАКТИРОВАТЬ: ранее я использовал Google iOS SDK для построения маршрутов, которые будут автоматически обрабатывать полилинии. Насколько я искал, я смогу перенаправить в браузер, чтобы показать маршруты и навигацию. Но мне нужно нарисовать это в приложении [iOS6]. Выполняет ли iOS6 маршрутизацию автоматически, если да, можете ли вы поделиться некоторым кодом, чтобы получить представление о нем. Этот пример кода я использовал в iOS5, используя карты Google.

// 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];

person sajang    schedule 28.05.2013    source источник
comment
Как вы рисуете маршруты? Потому что, хотя Apple изменила поставщика карт в iOS 6, способ рисования полилиний практически не изменился. Возможно, предоставьте нам код для просмотра?   -  person lxt    schedule 28.05.2013


Ответы (2)


Я сделал маршрут в своем приложении. Я использовал Google Geocoding 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]];
}
person stosha    schedule 28.05.2013

Вы используете сторонний код для рисования маршрута, а не используете сам MapKit. Используемая вами библиотека (которую я нашел на GitHub здесь) не обновлена. два года.

Я бы порекомендовал вам перейти от этой библиотеки к чему-то более современному. Если вы хотите, вы можете рассмотреть возможность использования Google iOS Map SDK, который поддерживает iOS 6 (ссылка здесь). Вы можете комбинировать это с Google Directions API, чтобы рисовать полилинии прямо на карте. Или вы можете придерживаться MKMapView и снова рисовать прямо на карте ломаными линиями.

Дело не в том, что iOS изменила способ рисования полилиний на карте, а в том, что используемый вами сторонний код устарел.

person lxt    schedule 28.05.2013
comment
Как объединить API направлений с Google SDK, чтобы нарисовать маршрут для режима вождения. Можете ли вы предоставить ссылку на код или пример кода? - person sajang; 29.05.2013