0

我正在尝试在我的 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++;
}

我有连接这些点的折线,当您在地图上放大时它们保持固定宽度,但是当您放大时圆圈会增加,这不符合它的目的。我知道我可以使用图像作为标记,但如果可以的话,我宁愿只使用一个圆圈。

谢谢

4

1 回答 1

0

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

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

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

谷歌地图 v3 中“可见”区域的半径

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

于 2012-04-30T13:57:21.750 回答