Loh*_*olu 2 mkmapview ios swift
关于如何获得地图可见区域的缩放级别和半径(使用mapkit mapview),我感到很困惑.
这是我正在寻找的(根据需要,他们中的任何一个或两者) -
截至目前,我正在使用let updatedRadius = (mapView.camera.altitude)/1000相机的高度,如果updatedRadius值> 25.0,我将显示彩色圆点.低于25.0,我会显示徽标.我这样做regionDidChanged
这个方法是否正确?
最终,应该发生的是,每当用户缩小时,半径都会发生变化.我需要将此更改后的半径发送到我的REST以获取更新列表.
什么是纬度经度增量,我们可以使用这些值获得可见区域的半径/宽度吗?
let latitudeDeltaVal = mapView.region.span.latitudeDelta
let longitudeDeltaVal = mapView.region.span.longitudeDelta
有人可以说明需要做些什么吗?
由于您需要在区域更改时调用api,您需要在mapView的委托函数中计算半径,RegionDidChange.
func mapView(mapView: MKMapView, regionDidChangeAnimated animated: Bool) {
let centralLocation = CLLocation(latitude: mapView.centerCoordinate.latitude, longitude: mapView.centerCoordinate.longitude)
self.centralLocationCoordinate = mapView.centerCoordinate
print("Radius - \(self.getRadius(centralLocation))")
}
func getRadius(centralLocation: CLLocation) -> Double{
let topCentralLat:Double = centralLocation.coordinate.latitude - mapView.region.span.latitudeDelta/2
let topCentralLocation = CLLocation(latitude: topCentralLat, longitude: centralLocation.coordinate.longitude)
let radius = centralLocation.distanceFromLocation(topCentralLocation)
return radius / 1000.0 // to convert radius to meters
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1768 次 |
| 最近记录: |