Zoom in on User Location- Swift
Solution 1
I would try something like this:
let latitude:CLLocationDegrees = //insert latitutde
let longitude:CLLocationDegrees = //insert longitude
let latDelta:CLLocationDegrees = 0.05
let lonDelta:CLLocationDegrees = 0.05
let span = MKCoordinateSpanMake(latDelta, lonDelta)
let location = CLLocationCoordinate2DMake(latitude, longitude)
let region = MKCoordinateRegionMake(location, span)
mapView.setRegion(region, animated: false)
I saw you said you tried setting a region. Maybe try doing it this way.
Solution 2
On most apps, a 'current location' button is implemented. A simple way to do it is like this:
@IBAction func myLocationButtonTapped(_ sender: Any) {
mapView.showsUserLocation = true
mapView.setUserTrackingMode(.follow, animated: true)
}
Once the user pans or zooms the map, the tracking will stop. So it's good enough for me.
Solution 3
You have to try this. It will zooming map.
let span = MKCoordinateSpanMake(0.050, 0.050)
let region = MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: 23.0225, longitude: 72.5714), span: span)
mapView.setRegion(region, animated: true)`
Caitlin
Updated on July 21, 2022Comments
-
Caitlin almost 2 years
I can't figure out how to get the map to zoom in on the user location from viewDidLoad. I tried setting a region, and that didn't work. This is the code I have, any tips?
@IBOutlet weak var mapView: MKMapView! var MapViewLocationManager:CLLocationManager! = CLLocationManager() var currentLocation: PFGeoPoint! = PFGeoPoint()
override func viewDidLoad() { super.viewDidLoad() self.mapView.showsUserLocation = true mapView.delegate = self MapViewLocationManager.delegate = self mapView.setUserTrackingMode(MKUserTrackingMode.Follow, animated: true) }
I have looked up the answers for this question but haven't found the answer in Swift or that actually works. Thanks!!
-
Caitlin almost 9 yearsThank you so much! I guess that is where I am stuck, how would I define the latitude and longitude of the user location?
-
rb612 almost 9 years@Caitlin you're welcome! I'm on mobile so I can't explain, but check this out: youtu.be/pSjbMwR2A2U and this: stackoverflow.com/a/25698536 if the video doesn't help.
-
Pavlos about 7 yearsand if you want to zoom more you just use smaller numbers in spam:
let spam = MKCoordinateSpanMake(0.001, 0.001)
-
AlexH over 3 yearsPlease provide an explanation of your code. Answers with only code aren't as good at helping others learn.