Как да начертая маршрути в карти, ios6?

Чертах маршрути в iOS5, но тъй като приложението трябва да бъде надстроено до iOS6, то не позволява чертане на маршрути между координатни местоположения. Търсих много, но се оказа напразно. Може ли някой да ми помогне кой API да използвам в iOS6, тъй като Google Maps вече не поддържа???

РЕДАКТИРАНЕ: Преди това използвах Google iOS SDK, за да начертая маршрутите, които автоматично ще се грижат за полилиниите. Доколкото търсих, ще мога да пренасоча към браузъра, за да покажа маршрути и навигация. Но трябва да нарисувам това в приложението [ iOS6 ]. iOS6 извършва ли автоматично маршрутизирането, ако е така, моля, споделете код, за да разберете същността му. Този примерен код го използвах в iOS5 с помощта на google maps

// 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)


Направих маршрут в моето приложение. Използвах API на Google Geocoding (използван само за 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 тук), не е актуализирана за две години.

Бих ви препоръчал да се отдалечите от тази библиотека към нещо по-актуално. Ако искате, можете да обмислите използването на iOS Map SDK на Google, който поддържа iOS 6 (връзка тук). Можете да комбинирате това с API на Google Directions, за да начертаете полилинии директно върху картата. Или можете да се придържате към MKMapView и отново да рисувате директно върху картата с полилинии.

Не че iOS е променил начина, по който рисува полилинии върху карта - това е, че кодът на трета страна, който използвате, е остарял.

person lxt    schedule 28.05.2013
comment
Как да комбинирате api за упътвания с google sdk, за да начертаете маршрут за режим на шофиране, можете ли да предоставите връзка с код или примерен код? - person sajang; 29.05.2013