Google Maps APIv3 несколько маркеров / несколько информационных окон - PullRequest
0 голосов
/ 29 февраля 2012

Я создаю карту различных мест в аэропортах. Мои маркеры находятся в правильных местах.

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

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

 `setMarkers(map, airports);
 }

  function setMarkers(map, locations) {

  for (var i = 0; i < locations.length; i++) {
var airport = locations[i];
var myLatLng = new google.maps.LatLng(airport[1], airport[2]);
var marker = new google.maps.Marker({
    position: myLatLng,
    map: map,
html: airport[3],
});

 var contentString = 
<?php
 $num_rows = (count($locations) - 1);

 for($i = 0; $i < count($locations); $i++){

  $query = "SELECT * FROM airports WHERE ident='$locations[$i]'";
  $result = mysql_query($query, $link)
or die('Error querying database.');

  while ($row = mysql_fetch_array($result)) { 

if ($i == $num_rows){

echo "'<div id=\"content\">'+";
 echo "'<div id=\"siteNotice\">'+";
  echo "'</div>'+";
echo "'<b>" . $row['ident'] . "</b></br>'+";
echo "'" . $row['latitude_deg'] . ", " . $row['longitude_deg'] . "' +";
echo "'</div>'+";
  echo "'</div>';";
}
 }
 }
 ?>



 var infowindow = new google.maps.InfoWindow({ 
 content: contentString
});

 google.maps.event.addListener(marker, 'click', function() {
//infowindow.setContent(this.html);
infowindow.open(map,this);
});
}
} 

1 Ответ

1 голос
/ 01 марта 2012

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

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

google.maps.event.addListener(marker, 'click', (function(event, index) {
  return function(){
    infowindow.content = markerArray[index].label + "<br>" + markerArray[index].text;
    infowindow.open(map,this);
  }
})(marker,i));

Код из: http://srsz750b.appspot.com/api3/polylines-multiple.html

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