我正在尝试在我的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++;
}
我有折线连接这些点之间的折线,当你放大地图时它们保持固定的宽度,但是当你放大时圆圈会增加,这不适用于它的目的。我知道我可以将图像用于标记,但如果可以,我宁愿使用圆圈。
由于
答案 0 :(得分:0)
这是可能的,但可能并不容易。您需要检查地图缩放更改并使用大圆距离公式重置圆的半径(以米为单位)。
google.maps.event.addListener(map, 'zoom_changed', resetRadius);
下面的问题和答案描述了如何为地图执行此操作,但应该适用于圆形。 Circle有getBounds()和setRadius()方法。