Marker Click上的Swift Google地图中心

时间:2015-08-06 02:42:35

标签: swift

我正在尝试将Google地图置于标记中心,并在用户点按标记时进行缩放。我可以使用点击代理在Android中执行此操作,但我无法在Swift中找到一种方法。

有没有人有任何提示或建议来解决这个问题?

3 个答案:

答案 0 :(得分:3)

你必须符合GMSMapViewDelegate协议,然后你有下面的函数:

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

    //you can handle zooming and camera update here 

}

你可以通过为多个位置创建绑定来更新摄像机,例如:(也可以给边界填充)

let bounds = GMSCoordinateBounds(coordinate: self.userLocation!.coordinate, coordinate: marker.position)
self.mapView.animateWithCameraUpdate(GMSCameraUpdate.fitBounds(bounds, withPadding: 120.0))

您也可以使用一个位置更新相机位置,缩放级别如下:

self.mapView?.camera = GMSCameraPosition.cameraWithTarget(marker.position, zoom: 9.0)

答案 1 :(得分:0)

我将部分回答你的问题:

将Google地图集中在标记上:

let camera = GMSCameraPosition.cameraWithLatitude(lat, longitude: long, zoom: 8.0)
self.mapView.camera = camera

其中lat,long是放置标记的地方的坐标。

用户点击标记时缩放:

func mapView(mapView: GMSMapView, didTapMarker marker: GMSMarker) -> Bool {
    let update = GMSCameraUpdate.zoomBy(2)
    mapView.animateWithCameraUpdate(update)
}

另外,请确保您的班级符合GMSMapViewDelegate

答案 2 :(得分:0)

在swift4中单击标记:

 func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
     // your code.
 }