我想在地球上繪製一個包含世界地圖的UIImage
上的一些座標。 (我不想用的地圖)用世界地圖在世界地圖上快速繪製座標
見下下面的UIImageView的一個例子:
正如你看到它的工作得非常好,但是從座標和X Y的映射是不正確的!
Amsterdam
的座標是:(52.36666489,4.883333206)和Center
是(0,0)。
我已經做了下面的事情,試圖做到這一點,但遺憾的是,這是不工作:
- 我第一次嘗試「正常化」的座標,因爲緯度範圍從
-90
到90
和緯度-180
至180
。
let normalizedLat = location.coordinate.latitude + 90.0. let normalizedLng = location.coordinate.longitude + 180.0
- 此後我已經計算:這是通過添加90到實際緯度和180到yiels的「規範化」版本的真實的經度完成比例因子,其中
normalizedLat
和normalizedLng
應與規模:
let heightScaleFactor = mapImageView.frame.height/180.0 let widthScaleFActor = mapImageView.frame.width/360.0
和3之後,我已經得到了縮放FAC職責範圍,我終於可以通過計算座標:
let x = Double(widthScaleFActor * CGFloat(normalizedLng)) let y = Double(heightScaleFactor * CGFloat(normalizedLat)) dot.frame = CGRect(x: x, y: y, width: Double(dot.frame.width), height: Double(dot.frame.height))
但對於一些奇怪的原因阿姆斯特丹是不是在阿姆斯特丹現貨和中心不在中心位置。
我很確定我的計算出錯了。有任何想法嗎?
哦,你是完全正確的,'mapImageView.frame.height - y'做了詭計!現在地圖已經看起來更好了。但偏移量仍然有點不對。你能看一下嗎? http://imgur.com/a/EGvN8 –
赤道沒有穿過圖像的中心。它有點低。您將需要在'y'值中添加另一個模糊因子以調整赤道偏移。 – rmaddy
我明白了!非常感謝你! –