0

次のようにマーカーを動的に追加しています。

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の「クリック」機能に基づいてうまく機能します。今やりたいことは、各マーカーに情報ウィンドウを追加することです。OK私は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],
}

私が必要/やりたいことは、次のように、情報ウィンドウのコンテンツに配列キーを追加することです:

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

newmarker[4]情報ウィンドウに移動するにはどうすればよいですか?

4

1 に答える 1

1

OMG私は考えています!- attachSecretMessage ( marker, newmarker[4] );おっと追加するだけです!と言ったように厚い!ごめん

于 2012-05-17T10:06:05.250 に答える