自定义地图中的相对坐标计算

时间:2012-03-22 03:15:38

标签: iphone geolocation maps trigonometry

我目前正在开发适用于iPhone的地图应用。我已经创建了一些不同大小的自定义地图,但我遇到了一个问题:

我想实现自动检查用户位置的能力,但由于我没有使用MapView,这更加困难。 (见下文)

map

考虑到不同的坐标系,我希望收到一个地理位置(绿点)并将其转换为自定义地图上的像素位置。 我得到了4个角落的地理位置,但是矩形是歪斜的。我已经计算了旋转角度,但我通常很困惑。

注意:地图的大小不足以使地球的球形性质得到计算。

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

要将地理位置转换为点,您需要先了解映射。假设您正在使用墨卡托。

x = R*long
y = R*(1+sin(lat))/cos(lat)

其中lat和long以弧度表示.R是地球的半径。图像的比例来自0 to R*PI

所以要在view.frame.size中获取它,你可能需要除以比例因子。

点之间的差异。

x2-x1 = R* (long2-long1)
y2-y1 = R* (  (1+sin(lat2))/cos(lat2) - (1+sin(lat1))/cos(lat1)  )