2012-06-29 204 views
0

我有一个纬度/长度的坐标点,我正在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,0)'你必须去得到一个问题?这种情况下的实际数字是什么样的? – AakashM

+0

我只试过(46,23)。我没有看到实际的数字,我刚才看到六角形的形状不规则,因为它应该是因为坐标计算正确(基于这里接受的答案)。 – slash197

回答

1

各种正多边形Examples远(0,0)

+0

谢谢。你能告诉我这是什么计算:'var d = 2 * 25000 * Math.cos(Math.PI/6);'? – slash197

+0

请参阅eshapes上的“文档”(http://econym.org.uk/gmap/eshapes.htm)。它是六边形网格中六边形中心之间的距离。 – geocodezip