10

I have just completed an Android app, where I used bearing value of current location. Now I am trying to do same app for iOS. But did not find a way to get bearing of current location in iOS sdk?

I am not looking how to calculate bearing between two CLLocationCoordinate2Ds (Calculating bearing between two CLLocationCoordinate2Ds).

*** I need bearing of current location.

Any help will be great for me.

Community
  • 1
  • 1
arefin
  • 365
  • 3
  • 17

2 Answers2

18

CLLocation has a course property (type CLLocationDirection) which is the bearing. From the docs:

Course values are measured in degrees starting at due north and continuing clockwise around the compass. Thus, north is 0 degrees, east is 90 degrees, south is 180 degrees, and so on. Course values may not be available on all devices. A negative value indicates that the direction is invalid.

nevan king
  • 112,709
  • 45
  • 203
  • 241
  • Thank you, @nevan king. I think I got my answer that I was looking for. – arefin May 10 '13 at 11:33
  • can to tell me how to use this course property @arefin – amit gupta Jan 04 '16 at 12:11
  • @nevan king. I am working with marker rotation in google maps, How can i set rotation for that, can u please guide me. – Uma Madhavi Mar 30 '17 at 05:43
  • @ nevan king Im getting course property. Im applying directly gmsmap view bearing. Is it correct or shall i need to apply for marker.rotation also .. Can u please check my problem – siva krishna May 01 '17 at 11:57
  • I tried to use the same value, but I am always getting -1, am I doing something wrong? @arefin – Paras Gorasiya Jun 29 '21 at 08:10
  • @ParasGorasiya it's been a while since your comment, but I'm experiencing the same outcome (`-1`). Did you manage to get to the bottom of that mystery? – Tom Larcher Feb 09 '22 at 02:07
0

I know that this question is old but I will leave my answer that may help other people who pass by here.

class MapViewController: GMSMapViewDelegate {

    func mapView(_ mapView: GMSMapView, idleAt position: GMSCameraPosition) {

        self.bearing = position.bearing
    }
}

Using this delegate you can obtain the bearing related with camera rotation from the google maps SDK.

Tiago Mendes
  • 4,572
  • 1
  • 29
  • 35