7

私はGoogleMapsv3を使用しており、サーバー側に位置データのjsonコレクションを構築しています。それで、それを受け取ったら、そのコレクションを繰り返し処理して、それぞれのマーカーオブジェクトを作成します。

これらのマーカーのそれぞれについて、クリックイベントでバインドします。これにより、ユーザーがマップ内のマーカーをクリックすると、関連付けられた場所に関連するデータを含む情報ウィンドウが表示されます。

取得したjsonオブジェクトとそれに対応するマーカーを保持するサーバーから取得したすべての場所を格納する配列があります。

問題は、参照または反復できる配列がある場合でも、ユーザーがそれらをクリックしたときにマーカーオブジェクトを取得するだけでなく、より多くの情報を格納するロケーションオブジェクトも取得する必要があることです。

関数はロケーションオブジェクトではなくマーカーによって呼び出されるため、このオブジェクトの配列を管理し、呼び出し元のオブジェクトから参照しようとしましたが、成功しませんでした。そこで、汎用フィールドを使用するように、グーグルマップのマーカーオブジェクトにさらに多くの情報を保存できるかどうかを考えました。

さらに情報が必要な場合はお知らせください。

ありがとう!

4

1 に答える 1

9

はい、JavaScriptのおかげでできます。この言語では、オブジェクトとハッシュテーブルは同じものです1

マーカーの作成方法は次のとおりです。

var point = new google.maps.LatLng(40.70, -74.00);
var myMarker = new google.maps.Marker({ position: point, map: map });

myMarkerそして、これはあなたがあなたのオブジェクトに追加のプロパティを追加する方法です:

myMarker.myNewField = 100;

出来上がり!関連データの個別の配列を保持する必要はありません。汎用フィールドは必要ありません。新しいプロパティ名を発明するだけで、準備完了です。


1DouglasCrockford によるJavaScriptプログラミング言語の調査

于 2010-04-22T00:18:37.840 に答える