谷歌地图圈叠加 - 固定大小

时间:2012-04-30 11:10:32

标签: javascript google-maps-api-3

我正在尝试在我的mvc项目中为地图添加圆形叠加层,但如果用户放大或缩小地图,我希望圆圈保持相同的大小 - 任何人都知道这是否可行?目前,我正在显示我的圈子,为每个圈子提供不同的颜色。

var mapCircle;
var count = 0;

var colours = [];
@foreach (string s in arrColours)
{
    <text>colours.push('@s');</text>;
}

for (var point in map) {   
    var circle = {
        strokeColor: '#777777',
        strokeOpacity: 0.8,
        strokeWeight: 1,
        fillColor: colours[count],
        fillOpacity: 0.8,
        map: map,
        center: pointMap[point].coords,
        radius: 70000
    };
    mapCircle = new google.maps.Circle(circle);
    count++;
}

我有折线连接这些点之间的折线,当你放大地图时它们保持固定的宽度,但是当你放大时圆圈会增加,这不适用于它的目的。我知道我可以将图像用于标记,但如果可以,我宁愿使用圆圈。

由于

1 个答案:

答案 0 :(得分:0)

这是可能的,但可能并不容易。您需要检查地图缩放更改并使用大圆距离公式重置圆的半径(以米为单位)。

 google.maps.event.addListener(map, 'zoom_changed', resetRadius);

下面的问题和答案描述了如何为地图执行此操作,但应该适用于圆形。 Circle有getBounds()和setRadius()方法。

Radius of "viewable" region in google maps v3

https://stackoverflow.com/a/3527136/1211981