I tried the following to get the real visible area of my MKMapView after changing the region. None of them give the desired result after the user rotates the map .
- use mapView.bounds and mapView.convertPoint to get NE and SW CLLocationCoordinate2D.
- use mapView.visibleRect to create NE and SW MKMapPoints and convert these points to NE and SW CLLocationCoordinate2D.
- use mapView.centerCoodinate and mapView.region.span latitude and longitude delta to calculate the NE and latitude and longitude of SW, which are then used for the new NE and SW CLLocationCoordinate2D.
# 1 and # 2 came from this message , and all 3 work well enough until the user rotates the map, which causes mapView.camera to play the game by changing its title. Once this happens, mapView.visibleRect does not match the real visible area. I am sure that changing pitch and pitch will have similar problems. I understand why the properties in MKMapView don't make sense when it goes 3D, but I don't know how to consider mapView.camera. This was mentioned in the commentary to one of the proposed responses in this post , but no solution was provided.
My question is: how can I get the area that is really visible to the user through mapView.camera, given the title, height and height?