Question: In `swift` I'm using `MapKit`. 

I set up the outlet `@IBOutlet weak var mapView: MKMapView!`, used the `MKMapViewDelegate`, and then I'm adding some annotations.

I was wondering if there's a possibility to show my map tilted and disable changing it until user zooms out the map. So basically when he zooms in - from the specific zoom level up to the closest zoom - he would only see this:

[![enter image description here](https://i.stack.imgur.com/pQdZ6.png)](https://i.stack.imgur.com/pQdZ6.png)

instead of this:

[![enter image description here](https://i.stack.imgur.com/hCqR9.png)](https://i.stack.imgur.com/hCqR9.png)

and changing this option by scrolling with two fingers should be locked.
When user zooms out to some specific zoom level (e.g. country-wise), then it could switch to non-3d map. Is that achievable?

Answer: 
Later edit:
-----------

The `MKMapView` has a property called `camera`(details [here](https://developer.apple.com/reference/mapkit/mkmapview/1452277-camera)) which is an instance of `MKMapCamera`. You can use that property to set your desired angle. Be aware that the camera can be pitched only at certain zoom levels. Based on Apple's documentation you can check if the camera can be pitched at any given moment by checking the `isPitchEnabled` property on the map view object.

Original answer
---------------

Try using an instance of `MKMapCamera`. From the documentation that should allow you to set the desired perspective angle and zoom level by setting it's `pitch`, `heading`and `altitude` properties.

You can read more [here](https://developer.apple.com/reference/mapkit/mkmapcamera).
try this

```
            camera.pitch = 85.0
            camera.altitude = 223.0
            camera.heading = 31.2

            self.mapView.isPitchEnabled = true;
            self.mapView.showsBuildings = true;

```