Google Maps Api v3 - нажмите маркер, увеличьте масштаб и откройте окно при втором нажатии - PullRequest
0 голосов
/ 15 февраля 2012

У меня есть карта, которая отображает местоположения магазинов на всей территории США с использованием пользовательских маркеров.Когда кто-то нажимает на маркер (1-й клик), я хочу увеличить эту область, которая может содержать несколько маркеров.Затем, когда они нажимают на маркер в пределах этой увеличенной области (2-й щелчок), он должен отобразить информационное окно с информацией об этом магазине.

То, что у меня есть, работает не совсем правильно.Это работает так, как я хочу ЕСЛИ , второй щелчок совпадает с маркером, который они нажали в первый раз.Если это другой маркер в пределах увеличенной области, он просто перемещается и центрируется на этом маркере.Затем я должен щелкнуть третий раз, чтобы открыть информационное окно.

Вот мой код:

          function(map, marker){      
          $(marker).click(function() {
             map.setZoom(8),
             map.panTo(marker.getPosition(),
             google.maps.event.addListener(marker, 'click', function() {
                   $('#map_canvas').gmap('openInfoWindow', { 'content': '<p style=\"font-size:95%;\"><span class=\"red padR5\" style=\"font-weight: bold;\">$city</span><a href=\"#/locate-sola-salons/city/$url_title/C$city_id/\" id=\"$url_title\" title=\"$city\" style=\"border-bottom:1px dotted #666666;\">See Details</a></p><p>$address2</p><p>$phone</p>'}, this); 
                  })
             );
        });

Есть ли способ, с помощью которого я могу выполнить то, что хочу, всего за 2 клика вместо3

1 Ответ

0 голосов
/ 15 февраля 2012

Лучшим подходом было бы установить флаг, указывающий, должна ли карта перемещаться / увеличиваться при щелчке маркера или открывать информационное окно.Или, возможно, вы можете проверить текущий уровень масштабирования и определить, какое действие предпринять.

...