1

次のように定義された配列「markerGroups」があります。

var markerGroups = {"foo": [], "bar": [], "foobar": []};

この配列は、Google マップにすべてのマーカーを格納するために使用されます。ご覧のとおり、マーカーを保存する 3 つのカテゴリがあります。1 つのマーカーは 1 つのカテゴリにのみ存在し、他のカテゴリには存在しません。各マーカーは、一意の ID によっても識別されます。たとえば、ID は 1422 です。

今度は、たとえば次のようにして到達できるように、このグループにマーカーを追加したいと思います

console.log(markerGroups.foo[1422]);

それがそのカテゴリの唯一のマーカーであっても。また、カテゴリから完全に削除できる必要があります。

次のようにmarkerGroupsを定義することで、これを可能にしようとしました:

var markerGroups = {"foo": {}, "bar": {}, "foobar": {}};

この行は、マーカーがマーカーとして定義されている関数内にあり、カテゴリが関数に渡され、関数にマーカーを格納する場所を伝えます。

markerGroups[category][marker.ID] = marker;

これはうまく機能しますが、マーカーがマップに表示されなくなりました。

なぜ、またはどのようにこれをより良い方法で行うことができるのでしょうか?

4

1 に答える 1

2

マーカーは、任意の JS オブジェクトと同じ方法で操作できる単純な JS オブジェクトです。

マーカーが地図上に表示されるかどうかを制御できる唯一の方法は、マーカーの setMap() 関数を使用することです。コードをチェックして、マップに表示したいマーカーに対して setMap(your_map) を呼び出すかどうかを確認してください。また、マーカーを表示するために設定する必要のあるプロパティ (位置など) がいくつかあることにも注意してください。

したがって、単純な JS オブジェクト操作について心配する必要はありません。適切に初期化されている限り、マーカーの可視性とは相互作用しません。

もちろん、これは理論的な観点です。これをすべて実行してもまだ機能しない場合は、追加の詳細とコードを提供する必要があります。

于 2012-10-04T08:35:32.903 に答える