Корректировка аннотации MapView
Привет все, что я пытаюсь изменить изображение аннотации, когда пользователь входит в следующий код
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
for (int i = 0; i < [_annotationArray count]; i++)
{
//MKAnnotation xxx = [_annotationArray objectAtIndex:i];
Shadows* shadowObj2 = [_shadowArray objectAtIndex:i];
NSLog(@"%@",_shadowArray);
CLLocationCoordinate2D location3;
location3.latitude = [shadowObj2.position_x floatValue];
location3.longitude = [shadowObj2.position_y floatValue];
CLLocation* locationold = [[CLLocation alloc] initWithLatitude:location3.latitude longitude:location3.longitude];
CLLocationDistance kilometers = [newLocation distanceFromLocation:locationold];
//temp = [kilometers intValue];
if (kilometers > 50 && kilometers <100)
{
MKAnnotationView* newA = [[MKAnnotationView alloc] initWithAnnotation:[_annotationArray objectAtIndex:i] reuseIdentifier:@"annotation1"];
newA.image = [UIImage imageNamed:@"shadowS.png"];
newA.canShowCallout = YES;
}
[locationold release];
//[shadowObj2 release];
}
}
Но я не могу изменить изображение аннотации, пожалуйста, скажите мне, почему я не могу это сделать
2 ответа
Вы можете сделать свою собственную аннотацию, следуя инструкции
http://blog.asolutions.com/2010/09/building-custom-map-annotation-callouts-part-1/
Я не думаю, что этот код имеет какое-либо отношение к представлению карты, и вы выделяете новый экземпляр MKAnnotationView с новым изображением. Это не меняет существующие, которые у вас уже есть на карте. Что вам нужно сделать, это проверить расстояние в представлении карты для аннотации, а затем изменить его изображение там.