Ios Swift谷歌地图-点击标记时如何移动屏幕底部的标记?
我正在玩谷歌地图,我需要覆盖点击标记的默认行为——默认情况下,标记会出现在屏幕中央,信息窗口如上图所示。我需要找出一种方法,当标记被点击时,标记移动到屏幕底部,信息窗口显示在中间。我找到了解决办法,但我无法将其转化为swiftIos Swift谷歌地图-点击标记时如何移动屏幕底部的标记?,ios,swift,google-maps,Ios,Swift,Google Maps,我正在玩谷歌地图,我需要覆盖点击标记的默认行为——默认情况下,标记会出现在屏幕中央,信息窗口如上图所示。我需要找出一种方法,当标记被点击时,标记移动到屏幕底部,信息窗口显示在中间。我找到了解决办法,但我无法将其转化为swift 有什么帮助吗?添加GMSMapViewDelegate func mapView(mapView: GMSMapView!, didTapMarker marker: GMSMarker!) -> Bool { mapView.animateToLocat
有什么帮助吗?添加
GMSMapViewDelegate
func mapView(mapView: GMSMapView!, didTapMarker marker: GMSMarker!) -> Bool {
mapView.animateToLocation(marker.position)
mapView.selectedMarker = marker
var point = mapView.projection.pointForCoordinate(marker.position)
point.y = point.y - 200
var newPoint = mapView.projection.coordinateForPoint(point)
var camera = GMSCameraUpdate.setTarget(newPoint)
mapView.animateWithCameraUpdate(camera)
return true
}
// move marker
func updateLocationoordinates(coordinates:CLLocationCoordinate2D) {
if marker == nil
{
marker = GMSMarker()
marker.position = coordinates
let image = UIImage(named:"destinationmarker")
marker.icon = image
marker.map = mapPageView
marker.appearAnimation = GMSMarkerAnimation.pop
}
else
{
CATransaction.begin()
// CATransaction.setAnimationDuration(0.1)
marker.position = coordinates
CATransaction.commit()
}
print(coordinates)
}
摄影机更改位置此方法每次都将调用
func mapView(_ mapView: GMSMapView, didChange position: GMSCameraPosition) {
var destinationLocation = CLLocation()
destinationLocation = CLLocation(latitude: position.target.latitude, longitude: position.target.longitude)
destinationCoordinate = destinationLocation.coordinate
updateLocationoordinates(coordinates: destinationCoordinate)
}
祝你好运