¿Hay un proyecto de ejemplo simple para MKAnnotation
? No sé qué pasar en "addAnnotation
", ya que quiere un poco de "id<Annotation>
". Los ejemplos en el sitio del desarrollador son todos con matrices o analizadores sintácticos o más, solo necesito un ejemplo muy fácil para comprender primero, cómo funciona todo.MKAnnotación, ejemplo simple
Gracias de antemano ..
EDIT:
he creado una clase Pin
. En .h, escribe
#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>
@interface Pin : NSObject <MKAnnotation> {
CLLocationCoordinate2D coordinate;
NSString *title;
NSString *subTitle;
}
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
@property (nonatomic, readonly) NSString *title;
@property (nonatomic, readonly) NSString *subTitle;
- (id)initWithCoordinates:(CLLocationCoordinate2D)location placeName:(NSString *)placeName description:(NSString *)description;
@end
según lo que onnoweb haya respondido.
En el Pin.m, he implementado de esta manera, de acuerdo con diferentes ejemplos:
#import "Pin.h"
@implementation Pin
@synthesize title, subTitle;
- (CLLocationCoordinate2D) coordinate {
CLLocationCoordinate2D coords;
coords.latitude = coordinate.latitude; //i want it that way
coords.longitude = 7.1352260; //this way it works
return coords;
- (NSString *) title {
return @"Thats the title";
}
- (NSString *) subtitle {
return @"Thats the sub";
}
- (id)initWithCoordinates:(CLLocationCoordinate2D)location placeName:(NSString *)placeName description:(NSString *)description {
return self;
}
- (void) dealloc {
[super dealloc];
}
@end
Así que si fijo las coordenadas manualmente, como se señaló en el comentario, funciona. Pero me gustaría poder establecer el valor dinámicamente como en el primer comentario. Intenté varias maneras, pero ninguna funcionó. Como no especificas un - (CLLocationCoordinate2D) coordinate
intenté sintetizar coordinate
, pero tampoco funcionará.
¿Podría mostrarme su MapPin.m?
EDIT 2:
que establece mapCenter
como
- (void)viewWillAppear:(BOOL)animated {
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
self.locationManager.delegate = self;
[self.locationManager startUpdatingLocation];
CLLocation *curPos = locationManager.location;
location = curPos.coordinate;
CLLocationCoordinate2D mapCenter;
mapCenter.latitude = location.latitude;
mapCenter.longitude = location.longitude;
MKCoordinateSpan mapSpan;
mapSpan.latitudeDelta = 0.005;
mapSpan.longitudeDelta = 0.005;
MKCoordinateRegion mapRegion;
mapRegion.center = mapCenter;
mapRegion.span = mapSpan;
mapKitView.region = mapRegion;
mapKitView.mapType = MKMapTypeStandard;
mapKitView.showsUserLocation=TRUE;
}
algo malo en eso?
Gracias, eso ya ayudó bastante. Me gusta saber a qué googlear, y lo puse en marcha, pero no lo entiendo del todo. Por favor vea mi pregunta actualizada para el código que tengo hasta ahora. No sé cómo debería verse .m. – Nareille
Ver mi respuesta editada. – onnoweb
Gracias, eso ayudó de nuevo :) Una última pregunta para un comportamiento extraño: no defino algo como "coordinar" en mi .h, pero Xcode me dice que necesito sintetizarlo. Si lo hago, mi mapCenter se desplaza unos cientos de metros hacia el oeste. Si supero la sintetización, se centra correctamente de nuevo. ¿Cómo deshacerse de la advertencia? – Nareille