我正在尝试将Google地图置于标记中心,并在用户点按标记时进行缩放。我可以使用点击代理在Android中执行此操作,但我无法在Swift中找到一种方法。
有没有人有任何提示或建议来解决这个问题?
答案 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.
}