Видимость Google Javascript Overlay

Я использую API-интерфейс Google Maps javascript V3, и у меня возникают проблемы с настройкой прозрачности наложения прямоугольника. В принципе, у меня есть прослушиватель кликов, и внутри слушателя у меня есть этот код:

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 overlay, который я определяю внутри initialize() и выше слушателя с

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

defaultRectangleOptions - то же самое, что и containRectangleOptions за исключением границ map.getBounds(), а visible - false.

Проблема заключается в том, что прямоугольник не отображается, когда я нажимаю, независимо от того, что alert() у меня есть правильные координаты, а также правильно говорит, что containsRectangle.getVisible() является истинным. Я также попытался скрытьRectangle быть видимым в defaultRectangleOptions, но он все еще не отображается. У меня также есть почти идентичный код для отображения круга, на который я нажимаю, и это работает точно, но прямоугольник никогда не появляется.

1 ответ

Я решил свою проблему. Я оказался ошибкой в том, как я инициализировал объекты границ. С помощью new оператора все исправлено.

licensed under cc by-sa 3.0 with attribution.