-1
我在MKMapView上畫一個圓。但是,如何計算此圓的半徑,使其等於用於首先繪製圓的半徑的值?MKMapView - 如何計算半徑符合設置
func setArea(_ center:CLLocationCoordinate2D, radius:CLLocationDistance) {
let area = MKCircle(center:center, radius:radius/LocationViewController.kRadiusInset)
mapView.setVisibleMapRect(mapView.mapRectThatFits(area.boundingMapRect), animated:false)
}
我試過以下,但它很略高於radius
傳遞給setArea
較大的返回值。它計算從地圖中心到左邊緣的距離。
// getRadius
let distance = middle.distance(from: edge)
let middle = CLLocation(latitude: mapView.region.center.latitude, longitude: mapView.region.center.longitude)
let edge = CLLocation(latitude: mapView.region.center.latitude, longitude: mapView.centerCoordinate.longitude - (mapView.region.span.longitudeDelta * 0.5))
let distance = middle.distance(from: edge)
如果我通過在「4000」米setArea()
,然後再把計算地圖的半徑(比如,內mapViewDidFinishRenderingMap()
我得到4010.61219348448
爲什麼不一致?