我使用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);
答案 0 :(得分:4)
你需要记住的一件事是,谷圈给出了球体(地球)上两点之间的距离,这就是为什么你的圆圈看起来不一样的原因。
您没有在示例中指定圆圈的用途,但是从代码段我可以看出它与旅行距离有关。在这种情况下,您可能有兴趣研究:
或
同样this page可以为您提供一些如何调整公式以获得正确圆形的基础。
编辑:为了正确起见,地球不是一个完美的球体,但是出于所有实际目的,它被认为是一个。
答案 1 :(得分:2)
要计算球体上的距离,您可以使用Google地图geometry library。 要请求图书馆使用:
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=geometry&sensor=true_or_false"></script>
然后,您的圈子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!"
});
}