Google Maps направления в картах общего приложения к персонализированным аннотациям - PullRequest
1 голос
/ 04 февраля 2012

Я создал приложение, которое отображает различные точки на пользовательской карте с пользовательскими булавками и показывает заголовок и субтитры с кнопкой раскрытия (все в порядке). Проблема возникает, когда приложение запускает карты, чтобы создать путь, а затем указать направление. Чтобы перейти с позиции пользователя, я просто набрал в URL «saddr = Current Position». Проблема возникает, когда я пытаюсь указать пункт назначения, к которому прикоснулся пользователь, относительно прикосновения к контакту.

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {

    [self.navigationController pushViewController:[[UIViewController alloc] init] animated:YES];
    NSString* addr = [NSString stringWithFormat:@"http://maps.google.com/maps?daddr=%1.6f%1.6f&saddr=Posizione Attuale", mapView.annotations.coordinate.latitude mapView.annotations.coordinate.longitude];

// также mapview.annotation.coordinate.latitude / longitude не работает

        NSURL* url = [[NSURL alloc] initWithString:[addr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    [[UIApplication sharedApplication] openURL:url];
}

Не могу понять, как передать координаты аннотации в куске кода!

Вот как я сказал и добавил аннотацию к своему виду

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


    CLLocationCoordinate2D theCoordinate1;
    theCoordinate1.latitude = 45.7;
    theCoordinate1.longitude = 7.64;
myAnnotation* myAnnotation1=[[myAnnotation alloc] init];

    myAnnotation1.coordinate=theCoordinate1;
    myAnnotation1.title=@"Pippo";
    myAnnotation1.subtitle=@"Ufficio";
[myMapView addAnnotation:myAnnotation1];

Это повторяется для 4 основных точек, которые имеют разные имена (myAnnotation1, 2, 3, 4) и координируют другие! Как я могу сделать, когда пользователь нажимает 1-2-3 или 4, чтобы переместить правильный пункт назначения?

Заранее спасибо! :)

1 Ответ

2 голосов
/ 04 февраля 2012

В calloutAccessoryControlTapped, почему вы нажимаете пустой контроллер представления и одновременно вызываете openURL?

В любом случае, координаты аннотации находятся в view.annotation.coordinate.

Такширота view.annotation.coordinate.latitude и долгота view.annotation.coordinate.longitude.

Кроме того, в строке addr вы пропускаете запятую между координатами.

...