Google API V3: проблема с событиями наведения курсора на многоугольник, если также определено GroundOverlay - PullRequest
4 голосов
/ 16 сентября 2011

Я использую Google API V3, и я хочу, чтобы наложение на поверхности земли и на этом наложение означало изменение цвета при наведении курсора мыши.Событие при наведении курсора работает нормально до тех пор, пока не определено наложение на землю.Но если наложение на землю присутствует, то при наведении мыши цвет не меняется.

Есть предложения?

Вот пример:

var newark = new google.maps.LatLng(40.740, -74.18);
var imageBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(40.716216,-74.213393),
new google.maps.LatLng(40.765641,-74.139235));

var myOptions = {
zoom: 13,
center: newark,
mapTypeId: google.maps.MapTypeId.ROADMAP
}

var map = new google.maps.Map(document.getElementById("map"), myOptions);

var oldmap = new google.maps.GroundOverlay(
"http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg",
imageBounds);
oldmap.setMap(map);

//Points to create polygon
var points = [
new google.maps.LatLng(40.735657,-74.172367),
new google.maps.LatLng(40.743588,-74.179498),
new google.maps.LatLng(40.732878,-74.182777)
]
//Create Polygon
var poly = new google.maps.Polygon({
    path: points,
    map: map,
    strokeColor: '#ff0000',
    strokeOpacity: 1,
    strokeWeight: 1,
    fillColor: '#ff0000',
    fillOpacity: 1
});

//poly changes color on mouseover
google.maps.event.addListener(poly, 'mouseover', function() {
    poly.setOptions({
        strokeColor: '#0000ff',
        fillColor: '#0000ff'
    });
});

//poly changes color back on mouseout
google.maps.event.addListener(poly, 'mouseout', function() {
    poly.setOptions({
        strokeColor: '#ff0000',
        fillColor: '#ff0000'
    });
});

1 Ответ

1 голос
/ 16 сентября 2011

Скорее всего, вам придется создать собственное наложение для фона, так как у вас есть больший контроль над тем, на каком слое карты находится наземное наложение.

http://code.google.com/apis/maps/documentation/javascript/overlays.html#CustomOverlays

Это не обязательно проблема, так как я не пробовал ваш код, но хорошей тактикой является использование html-инспектора Firebug, чтобы увидеть, как размечены фигуры, чтобы увидеть, есть ли что-нибудь, что вы можете сделать с помощью css / javascript, чтобы изменить их приоритет.

...