2013-06-22 110 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];

相关问题