【发布时间】:2012-07-01 02:47:03
【问题描述】:
我有一个纬度/经度坐标点,我正在 Google 地图上围绕它绘制一个多边形(六边形)。这是我计算六边形坐标的代码:
for (var i = 0; i < 6; i++) {
x = lat + r * Math.sin(i * 2 * Math.PI / 6);
y = lng + r * Math.cos(i * 2 * Math.PI / 6);
}
这会计算正六边形中的所有坐标,如果它的中心靠近(0 纬度,0 度长),我可以毫无问题地在地图上绘制它。问题是当我想把它从 (0, 0) 画出来时,它会变成一个细长的形状。我猜这是因为地球不是平的,谷歌地图考虑到了这一点。所以我可能需要在计算中更改半径以反映这一点,有人知道它是如何完成的吗?
【问题讨论】:
-
距离
(0,0)多远才能解决问题?在这种情况下,实际数字是什么样的? -
我只试过 (46, 23)。我没有查看实际数字,我只是看到六边形的形状不规则,因为坐标计算正确(基于 SO 上接受的答案)。
标签: javascript google-maps math