如何通过给定角位置来缩放 Mapview
How can I zoom Mapview with giving corner locations
我有一个像 [[39.1216, 40.5127],[40.5081, 40.5127],[40.5081, 41.1076],[39.1216, 41.1076]]
这样的数组,这个位置给了我一个城市的角坐标。 [topleft,topRight,botRight,botLeft]
当用户 select 一个城市时,我想缩放地图视图直到 mapview
的角与该位置匹配。
我搜索但找不到任何解决方案。我怎样才能做到这一点?
我可以得到这个坐标的中心位置但是我如何根据角点位置计算latitudinalMeters
和longitudinalMeters
?
let region = MKCoordinateRegion.init(center: location, latitudinalMeters: "calculations", longitudinalMeters: "calculations")
您可以得到纬度和经度之间的差异(delta),然后使用MKCoordinateSpan
和MKCoordinateRegion
设置初始可见区域地图。
let latDelta = topLeft.latitude - bottomRight.latitude
let lonDelta = topLeft.longitude - bottomRight.longitude
let span = MKCoordinateSpan(latitudeDelta: fabs(latDelta), longitudeDelta: fabs(lonDelta))
let region = MKCoordinateRegion(center: lake.midCoordinate, span: span)
mapView.region = region
我有一个像 [[39.1216, 40.5127],[40.5081, 40.5127],[40.5081, 41.1076],[39.1216, 41.1076]]
这样的数组,这个位置给了我一个城市的角坐标。 [topleft,topRight,botRight,botLeft]
当用户 select 一个城市时,我想缩放地图视图直到 mapview
的角与该位置匹配。
我搜索但找不到任何解决方案。我怎样才能做到这一点?
我可以得到这个坐标的中心位置但是我如何根据角点位置计算latitudinalMeters
和longitudinalMeters
?
let region = MKCoordinateRegion.init(center: location, latitudinalMeters: "calculations", longitudinalMeters: "calculations")
您可以得到纬度和经度之间的差异(delta),然后使用MKCoordinateSpan
和MKCoordinateRegion
设置初始可见区域地图。
let latDelta = topLeft.latitude - bottomRight.latitude
let lonDelta = topLeft.longitude - bottomRight.longitude
let span = MKCoordinateSpan(latitudeDelta: fabs(latDelta), longitudeDelta: fabs(lonDelta))
let region = MKCoordinateRegion(center: lake.midCoordinate, span: span)
mapView.region = region