add GMSMapViewDelegate
// 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)
}
Camera change Position this methods will call every time
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)
}
good luck