2012-06-12 2 views
0

В моем приложении у меня есть набор местоположений и их относительная аннотация. У меня есть кнопка, где его можно лезть, я перехожу к методу, который вызывает веб-службу URL, чтобы получить представление улиц google.Прохождение коордов аннотации Mapkit tapped

Мой код:

- (NSString*)urlStreetview:(id<MKAnnotation>)annotation{ 

    CLLocation *pinLocation = [[CLLocation alloc] initWithLatitude:annotation.coordinate.latitude longitude:annotation.coordinate.longitude]; 

    NSLog(@"lat:%f",pinLocation.coordinate.latitude); 
    NSLog(@"lon:%f",pinLocation.coordinate.longitude); 


    NSString *lat_string = [[NSString alloc] initWithFormat:@"%f", pinLocation.coordinate.latitude]; 
    NSString *lon_string = [[NSString alloc] initWithFormat:@"%f", pinLocation.coordinate.longitude]; 


    NSString *url1 = [NSString stringWithFormat:@"http:myweb/streetview.php"]; 

    NSString *url2 = [url1 stringByAppendingString: @"?lat="]; 
    NSString *url3 = [url2 stringByAppendingString:lat_string]; 
    NSString *url4 = [url3 stringByAppendingString:@"&lon="]; 
    NSString *url = [url4 stringByAppendingString:lon_string]; 


    NSLog(@"url:%@",url); 
    return url; 
} 

я написал предыдущий метод, чтобы иметь URL, который составлен с LatLong аннотации.

У меня есть кнопка, называемая PressMe на выводе аннотации. Когда я его нажимаю, я хочу выпустить предыдущий метод, чтобы вычислить URL-адрес, но я не понимаю, как передать выбранную аннотацию методу streetView.

- (IBAction)PressMe:(id)sender 
{ 
    UIViewController *webViewController = [[[UIViewController alloc] init] autorelease]; 
    UIWebView *uiWebView = [[[UIWebView alloc] initWithFrame: CGRectMake(0,0,320,480)] autorelease]; 

    [uiWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString: [self urlStreetview: ????]]]];  //HERE IS MY MY PROBLEM 

    [webViewController.view addSubview: uiWebView]; 
    webViewController.title = @"web bar"; 
    [self.navigationController pushViewController:webViewController animated:YES]; 

    //[[self navigationController] pushViewController:thirdViewController animated:YES]; 
} 

благодарит заранее!

+0

Как ваша кнопка добавлена ​​и как она соотносится с вашим аннотацией? Это ключ к тому, что информация об аннотации интересна. –

+0

мои кнопки добавляются по методу: - (MKAnnotationView *) mapView: (MKMapView *) mapView viewForNnotation: (id ) аннотация { // информация левой кнопки UIButton * left_button = [[UIButton alloc] initWithFrame: CGRectMake (0, 0, 20, 20)]; [left_button setImage: [UIImage imageNamed: @ "add.png"] forState: UIControlStateNormal]; [left_button addTarget: self action: @selector (PressMe :) forControlEvents: UIControlEventTouchUpInside]; annotationView.leftCalloutAccessoryView = left_button; // – doxsi

ответ

1

Я сам отвечу на свой вопрос. Я просто решаю свою проблему, и она работает отлично. Код позволяет показывать веб-представление, чтобы иметь вид Просмотр google-сервиса аннотации аннотационной карты Kit. Obviusly, поскольку я относительно новый разработчик iphone, если кто-то хочет добавить/предложить/улучшить, он приветствуется.

Моя реализация кнопки:

- (IBAction)PressMe:(id)sender 
{ 
    UIViewController *webViewController = [[[UIViewController alloc] init] autorelease]; 
    UIWebView *uiWebView = [[[UIWebView alloc] initWithFrame: CGRectMake(0,0,320,480)] autorelease]; 

    [uiWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString: self.urlStreetview]]]; 

    [webViewController.view addSubview: uiWebView]; 
    webViewController.title = @"web bar"; 
    [self.navigationController pushViewController:webViewController animated:YES]; 

    //[[self navigationController] pushViewController:thirdViewController animated:YES]; 
} 

С помощью этой кнопки я называю моим (следующий) методом «urlStreetview», с аннотацией выбранной компонует строку для того, чтобы иметь COMPLET URL с apropriete GET PHP параметр. URL-адрес - это направление моей (очень простой) веб-службы, которая позволяет вызвать google API Street View.

- (NSString*)urlStreetview{ 

    //there can only be one selected annotation so get the one at index 0 
    id<MKAnnotation> selectedAnnotation = [_mapView.selectedAnnotations objectAtIndex:0]; 

    CLLocation *pinLocation = [[CLLocation alloc] initWithLatitude:selectedAnnotation.coordinate.latitude longitude:selectedAnnotation.coordinate.longitude]; 

// Теперь я аннотацию координаты выбраны, так что теперь я могу осложнять urladdingo моей базы URL: HTTP: //myurl/streetview.php, ГЭТ части, я имею в виду Lat Lon коорды:

NSString *lat_string = [[NSString alloc] initWithFormat:@"%f", pinLocation.coordinate.latitude]; 
    NSString *lon_string = [[NSString alloc] initWithFormat:@"%f", pinLocation.coordinate.longitude]; 

    NSString *url1 = [NSString stringWithFormat:@"http://myurl/streetview.php"]; 

    NSString *url2 = [url1 stringByAppendingString: @"?lat="]; 
    NSString *url3 = [url2 stringByAppendingString:lat_string]; 
    NSString *url4 = [url3 stringByAppendingString:@"&lon="]; 
    NSString *url = [url4 stringByAppendingString:lon_string]; 

    NSLog(@"url:%@",url); 
    return url; 
} 

Надеюсь, это может быть полезно!

Смежные вопросы