1

マーカーを 1 つずつマップに追加するスクリプトがあります

var marker = new google.maps.Marker({
                    position: new google.maps.LatLng(51,-117)
                });
marker.setIcon(getIconFile(initialIconId));
markers.push(new Array(id,marker)); // id, marker
marker.setMap(map);

スクリプトの後半でカスタム ボタンを押したときに、マーカー アイコンを変更できるようにしたいと考えています。したがって、マーカー配列から id でマーカーを取得し、次のように呼び出します。

 markers[markerIndex].setIcon(getIconFile(newIconId)); // which returns a string url of the icon

しかし、私は受け取ります: TypeError: marker[markerId].setIcon is not a function

私はmarkerIdを出力し、それは有効です。また、マーカーmarker[markerId]にインデックスを付けた結果を出力し、マーカーオブジェクトを返します。これをデバッグする他の方法はありません。

ありがとう

4

1 に答える 1

2

1 つの要素ではなく、配列をマーカーにプッシュしているようです。

なぜだめですか:

markers = []
markers.push(marker)
markers[markerIndex].setIcon(getIconFile(newIconId));

または、配列の挿入を主張する場合:

markers.push(new Array(id,marker));
markers[markerIndex][1].setIcon(getIconFile(newIconId));
于 2013-01-04T15:48:58.677 に答える