点击后将GMSMarker置于底部

时间:2016-08-08 11:56:20

标签: ios swift google-maps-sdk-ios

点击GMSMarker并打开InfoWindow后,相机会移动到GMSMarker位于GMSMapView中心的位置。移动时如何更改标记位于底部的相机移动位置?

当我在没有didTapMarker的情况下实施GMS delegate InfoWindow方法时,一切都很好:

func mapView(mapView: GMSMapView, didTapMarker marker: GMSMarker) -> Bool {

    var point = mapView.projection.pointForCoordinate(marker.position)
    point.y = point.y - 200

    let camera = GMSCameraUpdate.setTarget(mapView.projection.coordinateForPoint(point))
    mapView.animateWithCameraUpdate(camera)

    return true
}

它在底部定位标记。但是,如果我return false它显示InfoWindow并且标记再次居中。

1 个答案:

答案 0 :(得分:1)

mapView.selectedMarker = marker didTapMarker方法中缺少

delegate。该方法应如下所示:

func mapView(mapView: GMSMapView, didTapMarker marker: GMSMarker) -> Bool {

    var point = mapView.projection.pointForCoordinate(marker.position)
    point.y = point.y - 150

    let camera = GMSCameraUpdate.setTarget(mapView.projection.coordinateForPoint(point))
    mapView.animateWithCameraUpdate(camera)
    mapView.selectedMarker = marker
    return true
}