Я пытаюсь пометить начальную и конечную булавки на моей карте разными цветами.Возможно, начальный штифт зеленого цвета, а конечный - красного.
Мой код, приведенный ниже, считывает координаты широты / долготы из базовых данных и зацикливает их, помещая красный штифт для каждого объекта, найденного в базовых данных.1007 * MapPin.m
#import "MapPin.h"
@implementation MapPin
@synthesize coordinate;
-(id)initwithCoordinates:(CLLocationCoordinate2D)location
{
self = [super init];
if (self != nil) {
coordinate = location;
}
return self;
}
-(void)dealloc{
[super dealloc];
}
@end
MapViewController.m
-(void)addAnnotations
{
if (![sharedMapID isEqualToString:@""]){
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"WayPoint" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"waypoint_map_id contains[cd] %@", sharedMapID];
[request setPredicate:predicate];
NSError *error = nil;
NSArray *results = [managedObjectContext executeFetchRequest:request error:&error];
// Check for errors from the FetchRequest
if (nil == results || nil != error)
NSLog(@"Error getting results : %@", error);
listArray = [results mutableCopy];
[request release];
// Loop through the array, get the coordinates and display on the map.
for (int i = 0; i < [listArray count]; i++)
{
NSString *strXCoordinate = [[listArray objectAtIndex: i] valueForKey:@"waypoint_x"];
NSString *strYCoordinate = [[listArray objectAtIndex: i] valueForKey:@"waypoint_y"];
double dblXCoordinate = [strXCoordinate doubleValue];
double dblYCoordinate = [strYCoordinate doubleValue];
CLLocationCoordinate2D coordinate = {dblYCoordinate, dblXCoordinate};
MapPin *pin = [[MapPin alloc]initwithCoordinates:coordinate];
[self.mapView addAnnotation:pin];
[pin release];
}
[listArray release];
}
}
Из того, что я прочитал, и некоторых примеров, которые я нашел, когда googling, вызывается следующий код для каждого вывода на карте,На моей карте нет никаких зеленых булавок.Может быть, я должен передать координаты этому методу и позволить ему разместить булавку на карте вместо кода выше.
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
MKPinAnnotationView *annView = nil;
annView.pinColor = MKPinAnnotationColorGreen;
annView.animatesDrop = TRUE;
annView.canShowCallout = YES;
annView.calloutOffset = CGPointMake(-5, 5);
return annView;
}
Любая помощь или толчок в правильном направлении (извините за каламбур) очень важныоценил.
С уважением, Стивен