当在Google地图上绘制大圆圈时,当圆圈变得非常大(数千英里转换为米)时,圆圈开始在地图上形成正弦波。
以下是设置和绘制圆圈的代码:
//larger, outer circle
var options = {
strokeWeight: 0,
fillColor: '#AA0000',
fillOpacity: 0.5,
map: map,
radius: distance
};
//smaller inner circle
var options2 = {
strokeWeight: 0,
fillColor: '#AA0000',
fillOpacity: 0.5,
map: map,
radius: distance/2
};
circles[circles.length]=new google.maps.Circle(options);
circles[circles.length]=new google.maps.Circle(options2);
for(var i=0; i<=circles.length-1; i++)
{
circles[i].bindTo('center', marker, 'position');
}
有没有办法避免这种情况?
答案 0 :(得分:2)
这是一个令人兴奋的问题!
如果您对重复的sin模式感到不安,但实际上希望您的圆圈覆盖半径为米的地球上的地理区域,那么您最好的选择是增加缩放级别(或缩小地图的宽度)以减少正在呈现的整体大小。或者,您可以将距离减少到不包含北极的值(这是我认为会引发尴尬的罪恶模式)
如果您尝试在几何中绘制一个圆,而不是地理,那么谷歌地图圆覆盖不适合您。相反,您应该使用GroundOverlay(在某处呈现透明的PNG服务器端)或CustomOverlay(技术上更先进的解决方案)。 CustomOverlay可以包含带有您使用任何HTML技术(例如CSS或SVG)绘制的圆的DIV。