iOS谷歌地图sdk GMSMarker定位

Sat*_*ran 13 ios google-maps-sdk-ios

我正在使用谷歌地图,我可以使用地图将地图集中到GMSMarker

 GMSCameraPosition *camera =
    [[GMSCameraPosition alloc] initWithTarget:marker.position
                                         zoom:MAP_ZOOM_LEVEL
                                      bearing:0
                                 viewingAngle:0];
    [mapView animateToCameraPosition:camera];
Run Code Online (Sandbox Code Playgroud)

我正在显示一个尺寸为200*150的自定义标注,当相机位置发生变化时,它会隐藏部分标注,但我希望标注位于中心,地图点位于其下方.任何想法如何做到这一点.

ska*_*arE 18

看看使用GMSProjection.要将地图中心从标记位置移动100px,您可以执行以下操作:

- (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker {
  CGPoint point = [mapView_.projection pointForCoordinate:marker.position];
  point.x = point.x + 100;
  GMSCameraUpdate *camera =
      [GMSCameraUpdate setTarget:[mapView_.projection coordinateForPoint:point]];
  [mapView_ animateWithCameraUpdate:camera];
  return YES;
}
Run Code Online (Sandbox Code Playgroud)


Mal*_*der 5

斯威夫特 4、3

func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
    var point:CGPoint = mapView.projection.point(for: marker.position)
    point.x = point.x + 100

    let camera:GMSCameraUpdate = GMSCameraUpdate.setTarget(mapView.projection.coordinate(for: point))
    mapView.animate(with: camera)

    return true
}
Run Code Online (Sandbox Code Playgroud)