如何通过给定角位置来缩放 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 的角与该位置匹配。 我搜索但找不到任何解决方案。我怎样才能做到这一点?

我可以得到这个坐标的中心位置但是我如何根据角点位置计算latitudinalMeterslongitudinalMeters

  let region = MKCoordinateRegion.init(center: location, latitudinalMeters: "calculations", longitudinalMeters: "calculations")

您可以得到纬度和经度之间的差异(delta),然后使用MKCoordinateSpanMKCoordinateRegion设置初始可见区域地图。

    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