Как обнаружить событие щелчка на накладке Google Maps полилинии?

голоса
5

Мне кажется, что я должен быть в состоянии сделать следующее для обнаружения события нажатия кнопки мыши на линию на карте Google:

var line = new GPolyline( ... );
map.addOverlay(line);
GEvent.addListener(line, click, function(latlng){ alert(clicked); });

Ссылка апи говорит , что это доступно в версии 2.88, который был выпущен в 2007 году (!?), поэтому я предполагаю , что это то , что я использую, но я не знаю , как это подтвердить.

Я также попытался установить {clickable:true}опцию явно (это должно быть по умолчанию.) Я проверил в FireFox 3 и Opera 9.6 , так сомневаюсь , что браузер специфичны. Я также использую JQuery на этой странице.

У меня есть много кода обнаружения щелчков на маркерах, который работает отлично, нажав на линии было бы очень хорошо, может кто-нибудь просветить меня?

Задан 06/04/2009 в 11:04
источник пользователем
На других языках...                            


5 ответов

голоса
2

Я просто сделал быстрый тест и следующий код работал на тестовой странице:

var polyline = new GPolyline([
  new GLatLng(37.4419, -122.1419),
  new GLatLng(37.4519, -122.1519)
], "#ff0000", 10);
map.addOverlay(polyline);

GEvent.addListener(polyline, 'click', function() {
    alert('you clicked polyline');
});

Способ узнать, какая версия Google Maps у вас есть, чтобы посмотреть на V = параметр Google Maps Src URL у вас есть

http://maps.google.com/maps?file=api&v=2&key=MY_API_KEY

В этом случае у меня есть «v = 2», это означает, что я использую последнюю стабильную версию 2, которая поддерживает интерактивные полилинии (по состоянию на сегодняшний день 2.101 является последним выпуск). «V = 2.x» означает, что вы используете релиз края. И любой «v = 2.5», где-нибудь после того, как период (.) Представляет собой число относится к определенному выпуска

Ответил 08/04/2009 в 00:07
источник пользователем

голоса
1

Спасибо за это!

  1. много примеров клик GMarker имеют GEvent перед тем, AddListener (), который не работает, я нашел. изменения порядка делает его работу.

  2. вы можете найти реальную версию с предупреждением (G_API_VERSION);

Использование stnadard Src URL выше, мои есть: // G_API_VERSION == 208а

еще раз спасибо!

Ответил 12/04/2010 в 22:08
источник пользователем

голоса
0

GPolylines можно сделать интерактивным, добавив событие щелчка к ним, как с другими объектами (код взят из предыдущего ответа):

var polyline = new GPolyline([
  new GLatLng(37.4419, -122.1419),
  new GLatLng(37.4519, -122.1519)
], "#ff0000", 10);
map.addOverlay(polyline);

GEvent.addListener(polyline, 'click', function() {
    alert('you clicked polyline');
});

Тем не менее, вы также должны знать, что после того, как событие GPolyline поднят, событие нажмите на самой карте в том же месте возводится. Кроме того, в настоящее время существует ошибка (по состоянию на май 2010 г.), в данном случае в качестве параметров событий не правильно получить передается в случае карта кликов. Это известная ошибка на Google, и они работают, чтобы исправить это.

Ответил 14/04/2010 в 00:10
источник пользователем

голоса
6

Обновление: в версии 3 API, вы хотите использовать google.maps.event.addListener(object, event, function);

например

google.maps.event.addListener(polyline, 'click', function() {
    alert('you clicked polyline');
    });

Для получения более подробной информации см событий API

Ответил 08/11/2010 в 13:38
источник пользователем

голоса
0

Обратите внимание , что , как представляется , не представляется возможным , чтобы иметь клики события в символах , которые на полилинии. Они не наследуют клики событие, которые прикрепляются к полилинии самому. Больше информации здесь: Google Maps: интерактивный значок полилинии

Ответил 14/05/2013 в 11:37
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more