我想在地球上绘制一个包含世界地图的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
我明白了!非常感谢你! –