快速旋转Gmsmap视图

时间:2018-10-03 05:39:22

标签: ios swift google-maps gmsmapview

这张图片中的size有两个标记

  
      
  1. 绿色标记是皮卡位置,
  2.   
  3. 红色标记是放置位置标记
  4.   

我要根据拾取位置旋转 mapView ,拾取位置要从mapView的左侧开始,放置位置要放置在mapView的右侧

使用委托方法或任何自定义方法旋转GMSMapView

https://i.stack.imgur.com/Re5Mp.png

1 个答案:

答案 0 :(得分:0)

您可以尝试这样

_service.RunProcessAsync(command, fileName);

在ViewController中

extension FloatingPoint {
    var degreesToRadians: Self { return self * .pi / 180 }
    var radiansToDegrees: Self { return self * 180 / .pi }
}

在mapView中(_ mapView:GMSMapView,idle在位置:GMSCameraPosition)

func getHeadingForDirection(fromCoordinate fromLoc: CLLocationCoordinate2D, toCoordinate toLoc: CLLocationCoordinate2D) -> Float {

let fLat: Float = Float((self.mapView.camera.target.latitude).degreesToRadians)
let fLng: Float = Float((self.mapView.camera.target.longitude).degreesToRadians)
let tLat: Float = Float((fromLoc.latitude).degreesToRadians)
let tLng: Float = Float((fromLoc.longitude).degreesToRadians)
let degree: Float = (atan2(sin(tLng - fLng) * cos(tLat), cos(fLat) * sin(tLat) - sin(fLat) * cos(tLat) * cos(tLng - fLng))).radiansToDegrees
if degree >= 0 {
     return degree
} else {
     return 360 + degree
 }
}