Автоматическое открытие панели информации о маркере на карте Google - PullRequest
2 голосов
/ 12 ноября 2011

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

    function initialize() {

      var myLatlng = new google.maps.LatLng(54.325109,-2.742226);

      var myOptions = {
        zoom: 15,
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
      }

      var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

      var countries = [
        {
          title:'Remedy', 
          lat:54.3210, 
          lon:-2.7438,
          content:"<h2>Remedy</h2><p>address, <br />location, <br />postcode</p> <p><b>T:</b> 07595 153 835 <br /><b>E:</b> <a href='mailto:email'>email</a></p>"
        }
      ];

      for (var i = 0; i < countries.length; i++) { 
          var c = countries[i]; 
          c.marker = new google.maps.Marker({
              position: new google.maps.LatLng(c.lat, c.lon), 
              map: map,
              icon: '/wp-content/themes/remedy/display_images/google_map_icon.png',
              title: c.title});
          c.infowindow = new google.maps.InfoWindow({content: c.content}); 
          google.maps.event.addListener(c.marker, 'click', makeCallback(c)); 
      } 

      function makeCallback(country) { 
          return function () { 
              country.infowindow.open(map, country.marker); 
          }; 
      }

      infowindow.open(map, marker);

    }

Ответы [ 3 ]

2 голосов
/ 12 ноября 2011

Возможно, это не работает, потому что вы только что создали экземпляр карты и не ожидали полной загрузки карты, чтобы открыть информационное окно.

Попробуйте что-то вроде этого:

Согласно ссылке: http://code.google.com/intl/en/apis/maps/documentation/javascript/reference.html#Map

tileloaded - это событие вызывается после завершения загрузки видимых плиток.

0 голосов
/ 03 мая 2013
var infowindow = new google.maps.InfoWindow({
    content: "Test Route",
    position: new google.maps.LatLng(38.8709866, -77.208055),
});
infowindow.open(map);
0 голосов
/ 12 ноября 2011

Хм, inforwindow не ссылается на что-либо в вашем коде, поэтому оно не работает.

Поскольку у вас есть одна страна в списке на данный момент, вы можете сделатьбыстрое тестирование и инициализация переменной infowindow с фактическим информационным окном или, что еще лучше, поскольку у вас есть 1 элемент в списке, просто определите c, чтобы он находился вне цикла, чтобы вы могли получить к нему доступ и затем открыть всплывающее окнопередавая ему карту и маркер, что-то вроде этого (при условии, что c был определен вне цикла)

c.infowindow.open(map, c.marker);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...