Quiero mostrar mapas y dibujar rutas en mapas. Mi aplicación soporta para ios 4 plus. Entonces, ¿cómo debo usar los mapas para trabajar en iOS 6 como antes? También quiero saber si debo usar mapview personalizado en mi aplicación para mostrar mapas y rutas o debo usar
[[UIApplication sharedApplication] openURL:]
Nunca he usado MapKits
. Así que por favor proporcione si hay algún tutorial. También avíseme si hay bibliotecas de terceros que puedan usarse.
Respuestas
5 para la respuesta № 1Si no quieres un mapa en la aplicación. Usa lo siguiente:
NSString *destinationAddress = @"Amsterdam";
Class itemClass = [MKMapItem class];
if (itemClass && [itemClass respondsToSelector:@selector(openMapsWithItems:launchOptions:)]) {
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder geocodeAddressString:destinationAddress completionHandler:^(NSArray *placemarks, NSError *error) {
if([placemarks count] > 0) {
MKPlacemark *placeMark = [[MKPlacemark alloc] initWithPlacemark:[placemarks objectAtIndex:0]];
MKMapItem *mapItem = [[MKMapItem alloc]initWithPlacemark:placeMark];
MKMapItem *mapItem2 = [MKMapItem mapItemForCurrentLocation];
NSArray *mapItems = @[mapItem, mapItem2];
NSDictionary *options = @{
MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving,
MKLaunchOptionsMapTypeKey:
[NSNumber numberWithInteger:MKMapTypeStandard],
MKLaunchOptionsShowsTrafficKey:@YES
};
[MKMapItem openMapsWithItems:mapItems launchOptions:options];
} else {
//error nothing found
}
}];
return;
} else {
NSString *sourceAddress = [LocalizedCurrentLocation currentLocationStringForCurrentLanguage];
NSString *urlToOpen = [NSString stringWithFormat:@"http://maps.google.com/maps?saddr=%@&daddr=%@",
[sourceAddress stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],
[destinationAddress stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlToOpen]];
}
Esto abre la aplicación del mapa y verifica si es ios5 o ios6.
Para ios5 utilizo el LocalizedCurrentLocation
de este post http://www.martip.net/blog/localized-current-location-string-for-iphone-apps
Para ios6, uso CLGeocoder para obtener la marca de posición y luego abro el mapa y la ubicación actual.
Recuerda añadir CoreLocation.framework
y MapKit.framework
1 para la respuesta № 2
Creo que esto te ayudará:
http://developer.decarta.com/Apis/IOS/Tutorial/Lesson6
http://developer.decarta.com/Apis/IOS/Tutorial/Lesson6Example
¿O esto?
http://spitzkoff.com/craig/?p=136
Tal vez sea divertido hacerlo si desea datos en su mapa:
http://www.raywenderlich.com/21365/introduction-to-mapkit-in-ios-6-tutorial
O alguna información básica sobre Mapkit