Google Maps Api V3 - заметное мерцание при изменении URL-адреса MarkerImage - PullRequest
0 голосов
/ 04 июля 2011

Я хотел бы изменить изображение маркера при наведении курсора мыши.Прямо сейчас важный бит выглядит следующим образом:

google.maps.event.addListener(marker, "mouseover", function (event) 
{
    this.set('icon', 'http://google.com/mapfiles/ms/micons/yellow-dot.png');
});

google.maps.event.addListener(marker, "mouseout", function (event) 
{
    this.set('icon', 'http://google.com/mapfiles/ms/micons/red-dot.png');
});

При первом наведении курсора мыши возникает мерцание, которое, я думаю, связано с тем, что Карты загружают новое изображение из URL.1005 * Есть ли способ предварительно загрузить желтый и красный маркеры весла и сохранить их в кеше?

Ответы [ 2 ]

6 голосов
/ 10 февраля 2013

Я не уверен, что это решение решит вашу конкретную проблему, но попробуйте отключить свойство «optimized» маркера:

var marker = new google.maps.Marker({
   position: new google.maps.LatLng(lat, long), 
   icon: markerIcon, 
   optimized: false
});

Это исправило проблему для меня в IE, где наведен маркерпри определенных уровнях масштабирования произойдет эффект мерцания.

2 голосов
/ 04 июля 2011

Per Предварительная загрузка изображений маркеров для Google Maps , вы можете попробовать поместить URL-адрес изображения в тег <div> с CSS display, установленным на none, чтобы обмануть браузер при предварительной загрузке.

Могут быть и другие способы (манифест HTML5?), Но это может показаться быстрым и простым решением. (Если это не сработает, это не займет много усилий, чтобы сделать и отменить. Если вы попробуете это, я хотел бы знать, работает ли это или не работает для вас.)

В вашем случае вы могли бы выполнить быструю и грязную проверку, включив это на своей странице:

<div style="display:none">
    <img alt="" src="http://google.com/mapfiles/ms/micons/yellow-dot.png"/>
</div>
...