показ текущего местоположения вместе с другим местоположением в iphone - PullRequest
2 голосов
/ 07 мая 2010

всякий раз, когда мы загружаем вид карты, он автоматически показывает текущее местоположение пользователя справа.В моем случае я показываю другое местоположение на карте, так что карта загружает текущее местоположение и увеличивает его до указанного мною места, но текущее местоположение не отображается (синее, которое появляется автоматически).я дал mapView.showCurrentLocation = TRUE;но это не показ.так может кто-нибудь рассказать, как это работает, и он должен сказать текущее местоположение метки, а затем увеличить масштаб до точки, которую я дал.Спасибо

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
    static NSString *defaultPinID = @"CameraAnnotation";
    MKPinAnnotationView *retval = nil;
    static int postag=1;

    (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
    if(annotation=MapView.userLocation)
    {
        return nil;
    }
    // If we have to, create a new view
    else    if (retval == nil)
    {
        retval = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];

        UIButton *myDetailButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        myDetailButton.frame = CGRectMake(0, 0, 50, 23);
        myDetailButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
        myDetailButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
        myDetailButton.tag=postag;
        postag++;
        [myDetailButton addTarget:self action:@selector(showLinks:) forControlEvents:UIControlEventTouchUpInside];
        retval.rightCalloutAccessoryView = myDetailButton;
        [retval setPinColor:MKPinAnnotationColorRed];
        retval.animatesDrop = YES;
        retval.canShowCallout = YES;
    }

    return retval;
}

Ответы [ 2 ]

2 голосов
/ 07 мая 2010

В симуляторе текущим местоположением по умолчанию является Купертино. Это то, что вы видите, оно будет правильно работать в устройстве.

Более того, вам следует использовать CLLocationManager для получения текущего местоположения.

- (void)applicationDidFinishLaunching:(UIApplication *)application { 
{
self.locationManager = [[[CLLocationManager alloc] init] autorelease];
self.locationManager.delegate = self; // Tells the location manager to send updates to this object
[locationManager startUpdatingLocation];
}

Чтобы изменить цвет булавки

MKPinAnnotationView   *pin=[[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"pin"]autorelease];

[pin setPinColor:MKPinAnnotationColorRed];

Всего наилучшего.

1 голос
/ 07 мая 2010

взгляните на ответ на этот вопрос, чтобы установить уровень масштабирования MkMapView, чтобы охватить все прикрепленные к нему примечания MKA

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