MKPointAnnotations的Swift Offset用于不同海拔范围内的相同位置坐标

时间:2017-08-10 09:56:04

标签: ios swift mapkit

我之前遇到过问题而且answered here已经问过了。此外,我还有一个问题,在我尝试了一种方法,但失败了。

我需要在地图上显示两个具有相同位置坐标的注释。数据来自服务,我应用逻辑将0.0001的偏移量添加到具有相同纬度的位置。 (SO Answer

现在,当我放大/缩小时,我正在使用

计算高度
let updatedRadius = (mapView.camera.altitude)/1000  //in KM

然后,我有以下内容来维持注释之间的恒定偏移(我的意思是,注释在任何缩放级别上并排显示)

switch updatedRadius {
                    case 0 ... 5:
                        allStoresInfo.map { currentStore in allStoresInfo.filter{$0.latLng![0] == currentStore.latLng![0]}.enumerated().forEach{ index, matchingStore in
                            matchingStore.latLng![0] += Double(index)*0.0001
                            }
                        }
                    case 5 ... 10:
                        allStoresInfo.map { currentStore in allStoresInfo.filter{$0.latLng![0] == currentStore.latLng![0]}.enumerated().forEach{ index, matchingStore in
                            matchingStore.latLng![0] += Double(index)*0.001
                            }
                        }
                    case 10 ... 25:
                        allStoresInfo.map { currentStore in allStoresInfo.filter{$0.latLng![0] == currentStore.latLng![0]}.enumerated().forEach{ index, matchingStore in
                            matchingStore.latLng![0] += Double(index)*0.01
                            }
                        }
                    default:
                        allStoresInfo.map { currentStore in allStoresInfo.filter{$0.latLng![0] == currentStore.latLng![0]}.enumerated().forEach{ index, matchingStore in
                            matchingStore.latLng![0] += Double(index)*0.0001
                            }
                        }
                    }

虽然此代码有效,但它始终仅应用0.0001偏移量。为什么抵消应用的总是0.0001?需要一些帮助请: - )

0 个答案:

没有答案