JavaScript API карт Google - открываются по одному информационному окну за раз.

Это вопросы, относящиеся к информационному окну в Google Maps API v3 ..

В настоящее время я зацикливаю эту функцию и размещаю маркеры ..

function addPostCode(zip, html) 
{
   geocoder.geocode( { 'address': zip}, function(results, status) 
   {
      if (status == google.maps.GeocoderStatus.OK)
      {
         map.setCenter(results[0].geometry.location);
         var marker = new google.maps.Marker({
         map: map,
         position: results[0].geometry.location,
         name: zip
      });
});

Теперь я хотел бы добавить информационные окна с уникальным HTML, однако мне хотелось бы следующего поведения ..

Когда информационное окно открывается событием, все текущие информационные окна закрываются, остается только новое.

Возможно ли это и как мне это сделать? Найти документацию по этому вопросу сложно.


person Lee    schedule 18.08.2010    source источник


Ответы (3)


Создайте единое информационное окно при инициализации. В вашем событии / слушателе, где вы хотите открыть информационное окно, вы должны установить контент и открыть информационное окно на маркере / местоположении на карте.

// Initialize infowindow
var infowindow = new google.maps.InfoWindow({content: ''});

function add_marker(point, name, content)
{
   var marker = new google.maps.Marker({
      map: map,
      position: point,
      dragable: false,
      clickable: true,
      name: name
   });
   marker.content = content;
   google.maps.event.addListener(marker, 'click', function()
   {
      infowindow.content = marker.content;
      infowindow.open(map, marker);
   });
   return marker;
};

function addPostCode(zip, html) 
{
   geocoder.geocode( { 'address': zip}, function(results, status) 
   {
      if (status == google.maps.GeocoderStatus.OK)
      {
         map.setCenter(results[0].geometry.location);
         var marker = add_marker(results[0].geometry.location, zip, html)
      });
});

Этот вопрос и ответ немного помогли мне решить проблему с одним или несколькими информационными окнами:

Google Maps API v3 с добавлением InfoWindow к каждому маркеру

person Eric C    schedule 18.08.2010

Вероятно, вам лучше спросить Группы Google для API Карт Google v3 по этому поводу и по любым другим связанным вопросам.

Я не использовал API v3, но, насколько мне известно, вы можете одновременно открывать только одно информационное окно, поэтому это будет происходить автоматически.

person Anthony -GISCOE-    schedule 18.08.2010

Есть два способа сделать это ... первый - создать единое информационное окно и просто использовать _ 1_ информационного окна для обновления _ 2_.

Второй способ сделать это - просто установить переменную уровня модуля в вашем коде, чтобы она содержала «активное» окно ... а затем, если какое-либо окно infoWindow открыто, вызовите его .close метод, прежде чем открывать новое.

person Sean Vieira    schedule 18.08.2010