我之前遇到过问题而且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?需要一些帮助请: - )