2013-06-22 111 views

回答

0

或者,您可以實施GMSMapViewDelegate並使用- mapView:didTapAtCoordinate:方法。

1

首先得到用戶的點擊。然後,獲取該CGPoint的座標值並將其設置爲mapView的中心。

-(void)handlePan:(UIPanGestureRecognizer *)recognizer 
{ 
    // Get tap point 
    CGPoint tapPoint = [recognizer locationInView:[recognizer superView]]; 

    // Convert CGPoint to CLLocationCoordinate2D 
    CLLocationCoordinate2D center = [self.mapView.projection coordinateForPoint:tapPoint]; 

    // Set camera of mapView 
    GMSCameraPosition * camera = [GMSCameraPosition cameraWithLatitude:center.latitude longitude:center.longitude zoom:self.mapView.camera.zoom]; 
    [self.mapView setCamera:camera]; 
} 
+0

@ user2511118這是否解決問題了嗎? – Geek

0

你可以做類似這樣的東西移動視口移動地圖視圖的中心點

GMSCameraPosition *sydney = [GMSCameraPosition cameraWithLatitude:-33.8683 
                 longitude:151.2086 
                  zoom:6]; 
[mapView_ setCamera:sydney]; 

(谷歌地圖SDK稱之爲攝像機的位置,因爲如果你使用的相機爲目標的部分整個地圖)

結帳https://developers.google.com/maps/documentation/ios/views?hl=en所以在這裏移動相機部分

,爲了與移動應用來完成你的任務,在那裏,他拍了拍點。你需要做以下步驟:

  1. 定義伊娃或財產,以保持抽頭點位置(緯度/經度)的記錄:

    CLLocationCoordinate2D * currentTapLocation;

  2. 在didTapAtCoordinate委託,獲取該位置

    - (void) mapView:(GMSMapView *) mapView didTapAtCoordinate:(CLLocationCoordinate2D) coordinate{ 
        currentTapLocation = coordinate; 
    } 
    
  3. 創建GMSCamera並設置相機currentTapLocation

    - (void) mapView:(GMSMapView *) mapView didTapAtCoordinate:(CLLocationCoordinate2D) coordinate{ 
        currentTapLocation = coordinate; 
    
        GMSCameraPosition *newCameraPosition = [GMSCameraPosition cameraWithLatitude:currentTapLocation.latitude 
                     longitude:currentTapLocation.longitude 
                      zoom:6]; 
        [mapView_ setCamera:newCameraPosition]; 
    } 
    
  4. 可選步驟:如果你想動畫到新的位置,而不是直接setCamera, 你可以這樣做:

    [mapView_ animateWithCameraUpdate:[mapView_ setCamera:newCameraPosition]];

    代替

    [mapView_ setCamera:newCameraPosition];

相關問題