Google Maps Javascript Overlay的可见性

时间:2012-02-10 17:32:24

标签: javascript google-maps

我正在使用Google Maps javascript V3 API,而且我在设置矩形叠加层的可见性方面遇到了问题。基本上,我有一个点击监听器,在监听器内我有这个代码:

var neLat = containmentCenter.lat()+ydiff;
var neLng = containmentCenter.lng()+xdiff;
var swLat = containmentCenter.lat()-ydiff;
var swLng = containmentCenter.lng()-xdiff;
nebound = google.maps.LatLng(neLat, neLng);
swbound = google.maps.LatLng(swLat, swLng);
crbounds = google.maps.LatLngBounds(swbound, nebound);
var containRectangleOptions = {
    strokeColor: "#FF0000",
    strokeOpacity: 0.8,
    strokeWeight: 2,
    fillColor: "#FF0000",
    fillOpacity: 0.35,
    map: map,
    bounds: crbounds,
    editable: true,
    visible: true
};
containRectangle.setMap(map);
containRectangle.setOptions(containRectangleOptions);
containRectangle.setVisible(true);
alert("Center: ("+containmentCenter.lat()+","+containmentCenter.lng()+")\nY:     
    "+ydiff+"\nX: "+xdiff+"\nVisible: "+containRectangle.getVisible());

其中containsRectangle是一个Rectangle叠加层,我在initialize()内部和侦听器上面定义了

containRectangle = new google.maps.Rectangle(defaultRectangleOptions);

defaultRectangleOptionscontainRectangleOptions完全相同,但边界为map.getBounds()且visible设置为false。

问题是当我点击时没有看到矩形,不管我所显示的alert()显示正确的坐标,还正确地说containsRectangle.getVisible()为true。我也尝试在defaultRectangleOptions中显示containsRectangle,但它仍然没有显示。我也有一些几乎相同的代码,用于显示我点击的圆圈,并且工作正确,但矩形永远不会显示。

1 个答案:

答案 0 :(得分:0)

我解决了自己的问题。我最初是在初始化边界对象的方式中出错。使用new运算符修复了所有内容。