MKMapView текущее местоположение, показывающее как пользовательские контакты - PullRequest
11 голосов
/ 23 сентября 2011

Я установил так, чтобы мой MKMapView отображал текущее местоположение. У меня также есть пользовательский вывод, реализованный для других выводов. Однако оказывается, что текущее местоположение отображается в виде пользовательского штифта, тогда как я просто хотел, чтобы это был обычный синий круг (как, например, карта Google).

Я определил в своем коде следующее:

- (MKAnnotationView *) mapView: (MKMapView *) mapView viewForAnnotation: (id<MKAnnotation>) annotation MKAnnotationView *pin = (MKAnnotationView *) [self.mapView dequeueReusableAnnotationViewWithIdentifier: @"VoteSpotPin"];
    if (pin == nil)
    {
        pin = [[[MKAnnotationView alloc] initWithAnnotation: annotation reuseIdentifier: @"TestPin"] autorelease];
    }
    else
    {
        pin.annotation = annotation;
    }

    [pin setImage:[UIImage imageNamed:@"TestPin.png"]];
    pin.canShowCallout = YES;
    pin.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    return pin;
}

Как я могу предотвратить отображение текущего местоположения в качестве булавки?

Ответы [ 5 ]

24 голосов
/ 23 сентября 2011

вам нужно реализовать это: -

- (MKAnnotationView *) mapView: (MKMapView *) mapView viewForAnnotation:(id<MKAnnotation>) annotation
{        
    if (annotation == mapView.userLocation)
    {
       return nil;
    }
    else
    {
       MKAnnotationView *pin = (MKAnnotationView *) [self.mapView dequeueReusableAnnotationViewWithIdentifier: @"VoteSpotPin"];
       if (pin == nil)
       {  
          pin = [[[MKAnnotationView alloc] initWithAnnotation: annotation reuseIdentifier: @"TestPin"] autorelease];
       }
       else
       {
          pin.annotation = annotation;
       }           

       [pin setImage:[UIImage imageNamed:@"TestPin.png"]];
       pin.canShowCallout = YES;
       pin.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
       return pin;
    }
}
2 голосов
/ 19 ноября 2015

Для Свифта:

if annotation is MKUserLocation {
    return nil
}
0 голосов
/ 28 марта 2014
mapView.delegate=self;



MKCoordinateRegion myRegion;

CLLocationCoordinate2D center;

center.latitude=40.4000;//spean

center.longitude=-3.6833;//firstLagi;//-5.345373;



MKCoordinateSpan span;

span.latitudeDelta=My_Span;
span.longitudeDelta=My_Span;


myRegion.center=center;
myRegion.span=span;


[mapView setRegion:myRegion animated:YES];



NSMutableArray *locations=[[NSMutableArray alloc]init];

CLLocationCoordinate2D location;
Annotation *myAnn;




allList=[[AllList alloc]init];




for (int j = 0; j<[appDelegate.allListArray count]; j++)
{
    cat=@"cat";
    myAnn=[[Annotation alloc]init];

    allList=[appDelegate.allListArray objectAtIndex:j];

    location.latitude=[allList.lati doubleValue];
    location.longitude=[allList.lagi doubleValue];

    myAnn.coordinate=location;
    myAnn.title=allList.name;
    //myAnn.subtitle=allList.type;

    [locations addObject:myAnn];


}

[self.mapView addAnnotations:locations];
0 голосов
/ 23 сентября 2011

Хотите самое простое решение?Просто измените свой пин объекта с MKAnnotationView на MKPinAnnotationView, он покажет вам, что вы хотите.

0 голосов
/ 23 сентября 2011
    - (MKAnnotationView *)mapView:(MKMapView *)mapViewTmp viewForAnnotation:(id<MKAnnotation>)annotation
    {
        if(annotation == mapView.userLocation)
            return nil;
         else
            {
MKAnnotationView *pin = (MKAnnotationView *) [self.mapView dequeueReusableAnnotationViewWithIdentifier: @"VoteSpotPin"];
            if (pin == nil)
            {

                pin = [[[MKAnnotationView alloc] initWithAnnotation: annotation reuseIdentifier: @"TestPin"] autorelease];
            }
            else
            {
                pin.annotation = annotation;
            }

            [pin setImage:[UIImage imageNamed:@"TestPin.png"]];
            pin.canShowCallout = YES;
            pin.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
            return pin;
        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...