2014-11-21 166 views
2

我正在建設一個iOS應用程序使用storyboards.I集成谷歌地圖在我的應用程序和獲取地點地址點擊。如何獲取經緯度和中心谷歌地圖iOS

我想實現地圖中心上的滾動地圖引腳上的引腳將移動並提供與在優步或奧拉出租車應用程序相同的位置地址。

有人可以幫助我如何實現這一點,我發現一個教程(http://www.raywenderlich.com/81103/introduction-google-maps-ios-sdk-swift),但它很快,但我必須在目標c。

這裏是我的代碼:

- (void)mapView:(GMSMapView *)mapView didTapAtCoordinate:(CLLocationCoordinate2D)coordinate{ 

    // coordinate contains your coordinate :) 

    NSLog(@"did tap at coordinate: (%f, %f)", coordinate.latitude, coordinate.longitude); 

     NSString *address=[NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/geocode/json?latlng=%f,%f&key=AIzaSjhsdfg67tahdsg8981k8_5aJoZps",coordinate.latitude, coordinate.longitude]; 

    NSURL *url=[NSURL URLWithString:address]; 

    NSData* data = [NSData dataWithContentsOfURL:url]; 

    if ((unsigned long)data.length > 3) { 

     // NSString *myString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 

     NSString *[email protected]"/Data.json"; 

     [data writeToFile:file atomically:YES]; 

     NSArray *ys_avatars = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 

     NSLog(@"array=%@",ys_avatars); 

      NSLog(@"status====%@",[ys_avatars valueForKey:@"status"]); 

      if([[ys_avatars valueForKey:@"status"] isEqual: @"OK"]){ 

     NSArray *results=[ys_avatars valueForKey:@"results"]; 

      NSLog(@"formatted_address====%@",[results valueForKey:@"formatted_address"]); 

      NSArray *address=[results valueForKey:@"formatted_address"]; 

      NSLog(@"add=%@",address[0]); 

       _myAddress.text=address[0]; 

     } 

    } 

} 
+2

如果我理解它是正確的,你總是想要獲得地圖中心的經緯度?這就是UBER的工作原理,如果是這種情況,我不認爲你需要實現didTapAtCoordinate,而應該使用 - mapView:didChangeCameraPosition: – Vig 2014-11-21 19:38:37

+0

@Vig ThanksYeaaa你是絕對正確的,你可以給我一個代碼示例我如何實現這個 - 可以請你告訴我如何我可以經常在相機位置的中心,我是否正確這是我們需要實現這一點 - – Test123 2014-11-21 22:30:36

回答

2

我不能評論這麼回覆您的問題,你可以得到緯度和長期地圖的中心是這樣的:

- (void)mapView:(GMSMapView *)mapView didChangeCameraPosition:(GMSCameraPosition *)position 
{ 
     double latitude = mapView.camera.target.latitude; 
     double longitude = mapView.camera.target.longitude; 

     CLLocationCoordinate2D center = CLLocationCoordinate2DMake(latitude, longitude); 


     marker.position = center; 

} 
相關問題