Другие ответы, рекомендующие поместить слушателей 'mousemove' на весь объект карты, будут работать, но они ошибочны. Это «тяжелая работа» и плохая идея, поскольку такие слушатели могут сложиться в реальном приложении и в сочетании с другими событиями, происходящими на вашей карте, могут вызвать серьезные проблемы с производительностью и, возможно, непредвиденные условия гонки!
Лучший способ сделать это - использовать класс google.maps.Polygon
. Это позволяет вам передавать серию объектов LatLng для создания многоугольника. Этот многоугольник отображается на карте и имеет атрибут наведения мыши по умолчанию «указатель», вы можете добавить слушатель «наведения мыши» к объекту, возвращенному из вызова класса new google.maps.Polygon
.
Источник ниже взят из этого примера
http://code.google.com/apis/maps/documentation/javascript/examples/polygon-simple.html
var myLatLng = new google.maps.LatLng(24.886436490787712, -70.2685546875);
var myOptions = {
zoom: 5,
center: myLatLng,
mapTypeId: google.maps.MapTypeId.TERRAIN
};
var bermudaTriangle;
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
var triangleCoords = [
new google.maps.LatLng(25.774252, -80.190262),
new google.maps.LatLng(18.466465, -66.118292),
new google.maps.LatLng(32.321384, -64.75737)
];
bermudaTriangle = new google.maps.Polygon({
paths: triangleCoords,
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 3,
fillColor: "#FF0000",
fillOpacity: 0.35
});
bermudaTriangle.setMap(map);
Тогда я могу добавить слушателя вот так
google.maps.event.addListener(bermudaTriangle, 'mouseover', function() {
map.setZoom(8);
});
//now if you mouse over the Polygon area, your map will zoom to 8