以下是获取用户定位的 Delegate
extension MapViewController: CLLocationManagerDelegate {
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
if let location = locations.first{
let center = CLLocationCoordinate2D(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)
let span = MKCoordinateSpan(latitudeDelta: 0.075, longitudeDelta: 0.075)
let region = MKCoordinateRegion(center: center, span: span)
self.mapView.setRegion(mapView.regionThatFits(region), animated: false)
locationManager.stopUpdatingLocation()
}
}
}
MKCoordinateSpan 的 latitudeDelta 和 longitudeDelta 数值越小地图的放大系数应该越高,但是有个问题就是用户定位(小蓝点)无法居中,并且放大系数越大,偏移量越大,如下图所示,请问一下大家有什么好的办法解决这个问题?
1
leon0918 2021-03-16 11:06:46 +08:00
看着不是地图中间点,用绝对中间点。另外,看看你的地图的范围,有没有被遮盖的部分。
|
2
xoioao 2021-03-16 15:47:45 +08:00
CLLocationManager 获取到的是原始 GPS 坐标( WGS-84 ),国内使用的话,转成国测局坐标(也就是常说的火星坐标)后再赋值使用。
|
5
loveuqian 2021-04-14 15:01:52 +08:00
|