2012-05-17 5 views
0

Все еще справляется с API JavaScript для Google Maps v3, поэтому, пожалуйста, расскажите мне обо мне. Могу ли добавлять маркеры динамически, как это:Google Maps JavaScript API v3 dynamic infowindow

var oldMarkers = null; 
    return function(map, locations){ 
     //Clearing markers, if they exist 
     if(oldMarkers && oldMarkers.length !== 0){ 
      for(var i = 0; i < oldMarkers.length; ++i){ 
       oldMarkers[i].setMap(null); 
      } 
     } 
     //Adding new markers 
     oldMarkers = []; 
     for (var i = 0; i < locations.length; i++) { 
      var newmarker = locations[i]; 
      var myLatLng = new google.maps.LatLng(newmarker[1], newmarker[2]); 
      var marker = new google.maps.Marker({ 
       position: myLatLng, 
       map: map, 
       shape: shape, 
       title: newmarker[0], 
       zIndex: newmarker[3], 
       clickable: true 
      }); 
oldMarkers.push(marker); 
} 

хорошо работает на основе JQuery «нажмите кнопку» функции. Теперь я хотел бы добавить infowindow для каждого маркера. Хорошо у меня есть этот код от Google, который должен/это прежде чем oldMarkers.push(marker):

var j = i + 1; 
marker.setTitle(j.toString()); 
attachSecretMessage(marker, j); 

и эту функцию:

function attachSecretMessage(marker, number) { 
    var message = ["This","is","the","secret","message"]; 
    var infowindow = new google.maps.InfoWindow(
     { content: message[number], 
     size: new google.maps.Size(50,50) 
     }); 
    google.maps.event.addListener(marker, 'click', function() { 
    infowindow.open(map,marker); 
    }); 
} 

Это своего рода работ, в том, что появляется информационное окно для 2-х маркеров, где он должен но не для всех. Это то, что/где я не понимаю: если у меня есть массив, чтобы сделать новые маркеры, как это (только в качестве примера):

var essentials = [ 
['Marker 1', 12.254181, 12.649962 , 9], 
['Marker 2', 12.254181, 12.649962 , 9], 
['Marker 3', 12.254181, 12.649962 , 9], 
['Marker 4', 12.254181, 12.649962 , 9], 
} 

Что мне нужно/хотел бы сделать, это добавить ключ массива для содержание InfoWindow так немного, как это:

var essentials = [ 
    ['Marker 1', 12.254181, 12.649962 , 9, 'Info Window content'] 

Как передать newmarker[4] в InfoWindow?

Заранее благодарен

ответ

0

OMG Я думаю! - просто добавьте attachSecretMessage (marker, newmarker[4]); ooops! как сказано, толстый! извините

Смежные вопросы