我创建的Google Maps V3 Circle&Circle不匹配

我使用Google Maps V3 API创建了一个圆圈,并尝试制作一个半径相同的标记圈。

问题:我创建的那个是倾斜的,而谷歌地图的那个是一个很好的圆形圈。 什么地方出了错?

Google Maps V3 Circle Code

// Draw search circle search_circle = new google.maps.Circle; search_circle.setCenter(target_latlng); search_circle.setRadius(travel_time * average_speed); search_circle.setMap(map); 

在此处输入图像描述

你需要记住的一件事是,谷圈给出了球体(地球)上两点之间的距离,这就是为什么你的圆圈看起来不一样的原因。

您没有在示例中指定圆圈的用途,但是从代码段我可以看出它与旅行距离有关。 在这种情况下,您可能有兴趣研究:

Haversine Formula

要么

余弦的球面定律

此页面还可以为您提供一些如何调整公式以获得正确圆形的基础。

编辑:为了正确起见,地球不是一个完美的球体,但出于所有实际目的,它被认为是一个。

要计算球体上的距离,您可以使用Google地图几何库 。 要求图书馆使用:

  

然后,您的圈子JS代码将是:

 num_theta_step = 365; // number of steps for(theta = 0; theta < 365; theta += 365/num_theta_step) { var circle_latlng = google.maps.geometry.spherical.computeOffset(target_latlng, R, theta); var marker = new google.maps.Marker({ position: circle_latlng, map: map, title:"Hello World!" }); }