iOS Route-Me: agregar marcador de location de usuario

He estado tratando de agregar las siguientes cosas a una aplicación Route-Me.

  • Agregar un marcador en la location inicial
  • Mover el map a la location del usuario
  • Mover el marcador a esa nueva location

Estoy utilizando el ejemplo básico del ejemplo MapBox ios, ya que mis maps son de una tienda mbtiles sin connection.

Este es mi file de encabezado:

#import <UIKit/UIKit.h> #import "RMMapView.h" #import "RMMarker.h" #import "RMMapViewDelegate.h" #import "RMMarkerManager.h" #import "CoreLocation/CoreLocation.h" @interface MBTiles_ExampleViewController : UIViewController { RMMapView *mapView; } @property (nonatomic, retain) IBOutlet RMMapView *mapView; @property (nonatomic, retain) CLLocationManager *locationManager; @property (nonatomic, retain) CLLocation *currentLocation; @property (nonatomic, retain) RMMarkerManager *markerManager; @property (nonatomic, retain) RMMarker *locationMarker; @end 

Y este es mi file de implementación:

 #define kStartingLat 30.0f #define kStartingLon -10.0f #define kStartingZoom 1.5f #import "MBTiles_ExampleViewController.h" #import "RMMBTilesTileSource.h" #import "RMMapContents.h" #import "RMMarker.h" #import "RMMarkerManager.h" #import "CoreLocation/CoreLocation.h" @implementation MBTiles_ExampleViewController @synthesize mapView; @synthesize currentLocation; @synthesize locationManager; @synthesize markerManager; @synthesize locationMarker; (void)viewDidLoad { CLLocationCoordinate2D startingPoint; startingPoint.latitude = kStartingLat; startingPoint.longitude = kStartingLon; NSURL *tilesURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"control-room-0.2.0" ofType:@"mbtiles"]]; RMMBTilesTileSource *source = [[[RMMBTilesTileSource alloc] initWithTileSetURL:tilesURL] autorelease]; [[[RMMapContents alloc] initWithView:self.mapView tilesource:source centerLatLon:startingPoint zoomLevel:kStartingZoom maxZoomLevel:[source maxZoom] minZoomLevel:[source minZoom] backgroundImage:nil] autorelease]; mapView.enableRotate = NO; mapView.deceleration = NO; mapView.backgroundColor = [UIColor blackColor]; mapView.contents.zoom = kStartingZoom; if (nil == locationManager) locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; locationManager.desinetworkingAccuracy = kCLLocationAccuracyBest; [locationManager startUpdatingLocation]; UIImage *iconImage = [UIImage imageNamed:@"marker.png"]; locationMarker = [[RMMarker alloc] initWithUIImage: iconImage]; [markerManager addMarker: locationMarker AtLatLong: startingPoint]; } (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { [mapView moveToLatLong:newLocation.coordinate]; RMLatLong newCoords = {newLocation.coordinate.latitude, newLocation.coordinate.longitude}; if (nil != markerManager) [markerManager moveMarker:locationMarker AtLatLon: newCoords]; } (void)dealloc { [mapView release]; [super dealloc]; } @end 

El marcador.png se ha agregado a mi carpeta de resources.

Entonces mis preguntas

  1. ¿Por qué no se muestra mi marcador de inicio?
  2. Estoy usando xcode en SnowLeopard, entonces, ¿puede el simulador encontrar mi location? Como el map no se mueve.

Cualquier ayuda sería genial, ya que he probado tantos fragments de código y tutoriales, pero ninguno ha terminado de funcionar.

Con respecto a su segunda pregunta, de la manzana docs:

En Xcode 4.0 y 4.1, puede simular solo la location actual en su aplicación. A partir de Xcode 4.2, puede simular ubicaciones que no sean su location actual en aplicaciones iOS que utilizan la location principal. Para establecer una location, elija Editar esquema del selector de esquema en la barra de herramientas, select la acción Ejecutar y click la pestaña Opciones. A continuación, puede elegir una location en el menu Ubicación

http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/WhatsNewXcode/Articles/xcode_4_2.html

Pude lograr que funcione después de limpiar el marcador después del movimiento.

 marker = [[RMMarker alloc] initWithUIImage:[UIImage imageNamed:@"marker.png"] anchorPoint:CGPointMake(0.5f, 1.f)]; [mapView.contents.markerManager addMarker:marker AtLatLong:locPoland]; [mapView.contents.markerManager moveMarker:marker AtLatLon:locWawa]; [mapView.markerManager moveMarker:marker AtLatLon: locUser]; [mapView moveToLatLong:locUser]; marker = nil;