0

JavaScriptマッピングライブラリ-OpenLayerを使用してマーカーオーバーレイを作成しています。マーカーを動的に制御したい:新しいマーカーを追加し、既存のマーカーをレイヤーから削除します。

レイヤーに新しいマーカーを追加する方法は、次のコマンドです。

markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon));

ご覧のとおり、初期化パラメーターには、IDではなく、座標とアイコン画像のみが含まれています。オプションのパラメーターとしては含まれていません。

マーカーを制御するために、参照によるマーカー配列とID配列を含む2次元配列を作成します。

次に、レイヤーからマーカーを削除する場合、コマンドは次のようになります。

markers.removeMarker(ArrayMarkers[i]);

参照によって要素をJavaScript配列にプッシュするにはどうすればよいですか?

参照によりArrayMarkers要素で実行するにはどうすればよいですか?

4

2 に答える 2

4

試す:

var ArrayMarkers = [];
var myMarker = new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon);
markers.addMarker(myMarker);
ArrayMarkers.push(myMarker);

基本的に、JavaScript は通常、参照を使用してオブジェクトを渡します。あなたはすでに参照をライブラリに渡しています。同じテクニックを使用できます。

于 2010-09-23T10:47:37.307 に答える
1

JavaScript では、値によって、または参照によって変数をプッシュすることを選択することはできません...これは、変数の型に応じて自動的に行われます。

あなたのマーカーはオブジェクトだと思います。したがって、それらは参照によって配列にプッシュされます。ID は文字列で、値によってプッシュされます。

于 2010-09-23T10:49:19.253 に答える