Карты Google - откройте InfoWindow onMouseover вместо onClick - PullRequest
2 голосов
/ 09 марта 2011

У меня есть вопрос, касающийся Google Maps и плагина jquery, который я использую для отображения карт и т. Д.

Все отлично работает, позиционирование маркера, перезагрузка страницы (с новым запросом БД для получения новых данных нановые координаты карты и т. д. ....)

Единственное, что мне не удалось заставить работать, - это изменить поведение информационных окон (пузырьков) на карте.

Я бы хотел, чтобы они открыли "onMouseOver" вместо "onClick" - вы можете мне помочь?

Я использую это: http://gmap.nurtext.de/download.html Я знаю, что это не самая актуальная вещь, но она делает то, что мне нужно (и это легко).

Пример здесь: http://www.divessi.com/code/geo/divecenter.php?lat=48.14&lon=11.73&s=600

Кристиан

Ответы [ 2 ]

2 голосов
/ 09 марта 2011

Это должно работать. Зацикливая маркеры, добавьте это:

GEvent.addListener(gmarker, 'mouseover', function() {
   gmarker.openInfoWindowHtml(opts.html_prepend + marker.html + opts.html_append);   
});

наведение мыши или любое другое событие GMarker http://code.google.com/apis/maps/documentation/javascript/v2/reference.html#GMarker

EDIT. Я заметил, что вы используете устаревшие Google Maps v2. Я редактировал код. В основном это то, что у вас там было. Но обязательно добавьте слушателя перед добавлением маркера в оверлей, на всякий случай.

EDIT2. Чтобы избежать одинакового информационного окна для всех ваших маркеров, оберните код в функцию, чтобы создать замыкание: (для получения дополнительной информации прочитайте «Печально известная проблема петли» http://robertnyman.com/2008/10/09/explaining-javascript-scope-and-closures/)

function listenMarker (gmarker,marker) {
    GEvent.addListener(gmarker, 'mouseover', function() {
       gmarker.openInfoWindowHtml(opts.html_prepend + marker.html + opts.html_append);   
     });
}

Например, поместите функцию в конец вашего файла и вызовите ее внутри цикла.

0 голосов
/ 09 марта 2011

В приведенный выше пример включен файл js.

/code/js/jquery.gmap-1.1.0_CK.js

Там есть несколько строк кода, связанных с событием mouseover, и они закомментированы:

//GEvent.addListener(gmarker,"mouseover", function() {
// this.openInfoWindowHtml(myHtml[j]);
//}); 

и

//GEvent.addListener(marker, "mouseover", function() {this.openInfoWindowHtml("no." + j + opts.markers[j]);});
//GEvent.addListener(gmarker,"mouseover", function() {
// this.openInfoWindowHtml("test " + j); //+ ": " + opts.html_prepend + marker.html + opts.html_append
//}); 

Это ссылка на Javascript API V2 Google Maps, которую использует плагин: http://code.google.com/apis/maps/documentation/javascript/v2/reference.html#GMarker

Вы можете увидеть определения методов, используемых плагином.

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

Версия 3 API довольно проста в использовании, если вы захотитепопробовать без плагина.

HTH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...