私は現在、Googleマップに表示される緯度/経度のリストを取得するためにサーバーにajax呼び出しを行っています。各マーカーにも「クリック」イベントを添付しました。私が扱っているID(データベースから)を知るために、マーカーに少し余分なデータを格納できるようにする必要があるということです。フレンドリーな情報を表示するためにTitleプロパティを使用しています。 AJAX、マーカーの作成、およびクリックイベントは正常に動作します。マーカーの余分なデータを保存する正しい方法は何ですか?ここでコードを参照してください:Googleマップのマーカーデータ
$.ajax({
url: "/location/NearbyHotspots",
data: {
lat: marker.position.lat(),
lng: marker.position.lng(),
radius: 10
},
datatype: "json",
type: "POST",
success: function (data, status, xhttp) {
for (var i = 0; i < data.length; i++) {
var loc = new google.maps.LatLng(data[i].Lat, data[i].Long);
var newmarker = new google.maps.Marker({
position: loc,
draggable: false,
map: map,
title: data[i].Name
});
// This doesn't seem to work
newmarker.hotspotid = data[i].ID;
google.maps.event.addListener(newmarker, "click", function(mark) {
alert(mark.hotspotid);
});
}
},
error: function (jqXHR, textStatus, errorThrown) {
alert(textStatus);
}
});
BTW-このシナリオでは、カスタムデータでマーカーオブジェクトを拡張する必要はもうありません、あなたはデータをattachClickEvent関数に第二のparamを渡すことができます[i]は.ID –
これが受け入れられるべきです回答。それは、OP自身の答えが示唆しているように、未使用のパラメータをハンドラに残すことを伴わないクリーンな方法を提供します。 – tfrascaroli