2012-07-07 12 views
95

マーカにカスタム情報を追加して後で使用できるようにする方法はありますか?情報ウィンドウとタイトルを持つ方法はありますが、マーカーを他の情報と関連付けるにはどうすればいいですか?Google Map API V3:マーカーにカスタムデータを追加する方法

マーカーに依存するページに他のものが表示されているので、マーカーがクリックされたときに、クリックされたマーカーに応じてコンテンツが変更される必要があります。カスタムデータを保存してマーカーは、あなたが(ちょうどAPIのプロパティと競合しないように注意してください)マーカーに独自のカスタムプロパティを追加することができますクリックなど

おかげ

答えて

169

GoogleマーカーはJavaScriptオブジェクトなので、key: valueという形式でカスタム情報を追加できます。ここでkeyは有効な文字列です。それらはオブジェクトプロパティと呼ばれ、さまざまな方法でアプローチできます。この値は、数字や文字列、関数、あるいは他のオブジェクトのような単純なものであれ、合法的なものであってもかまいません。同様の方法でそれを取得するために、その後の宣言では、ドット表記と角括弧

var markerA = new google.maps.Marker({ 
    map: map, 
    position: new google.maps.LatLng(0, 0), 
    customInfo: "Marker A" 
}); 

var markerB = new google.maps.Marker({ 
    map: map, 
    position: new google.maps.LatLng(-10, 0) 
}); 
markerB.customInfo = "Marker B"; 

var markerC = new google.maps.Marker({ 
    map: map, 
    position: new google.maps.LatLng(-20, 0) 
}); 
markerC['customInfo'] = "Marker C"; 

::3つの簡単な方法

google.maps.event.addListener(markerA, 'click', function() { 
    alert(this.customInfo); 
}); 
+0

は完璧な理にかなっています。デモですべてのことがより明確になりますありがとうございました:) – Abid

+0

ようこそ! –

+2

[ドキュメント](https://developers.google.com/maps/documentation/javascript/reference#MarkerOptions)にこのパターンを形式化することは何もありません。ここでは、彼らはそれ以降のバージョンでそれを壊すよりむしろやりたいと思っています。 – Adam

14

を言うことができますです。

関連する問題