おそらくかなり単純なクエリを誰かが手伝ってくれることを願っています。マウスクリックなしでこれを実行しようとする質問をここで見ましたが、マップの下の別の div に infoWindow コンテンツをロードする Fusion Table マップのマーカーにイベント リスナーを追加したいと考えています。これまでのところ、infoWindow を非表示にしましたが、クリックを追加し、そのマーカーに関連するデータを取得して div にロードするという次のステップで少し迷っています。
マーカーの表示は、ロード時間を短縮するために、ユーザーの位置から設定された半径内のマーカーに制限されます。
次のようなものから始める必要があると思います。
google.maps.event.addListener(layer, 'click', function() {
手がかりに感謝します。
これまでの私のコードの関連ビットは次のとおりです。
var tableid = '[ID]';
var layer = new google.maps.FusionTablesLayer({
query: {
select: 'Location',
from: tableid,
where: 'ST_INTERSECTS(Location, CIRCLE(LATLNG'+marker.position+', 2000))'
},
options: {
suppressInfoWindows: true
}
});
var circle = new google.maps.Circle({
map: map,
radius: 2000,
fillOpacity: 0.1,
strokeOpacity: 0,
clickable: false
});
circle.bindTo('center', marker, 'position');
layer.setMap(map);
});
編集:
みんなの楽しみのために、これは私がこれまでに試したことです:
google.maps.event.addListener(layer, "click", function () {
$('#infoWindowDiv').append('new google.maps.infoWindowHtml');
});
うまくいかないことに誰も驚かないでしょう。でもねえ、少なくとも私は試しています!ありがとう
編集2:
うまくいく解決策を見つけたと言って喜んでいます-同じ問題/目標を持っている可能性のある他の人のためにここに投稿します:
google.maps.event.addListener(layer, "click", function (e) {
document.getElementById("infoWindowDiv").innerHTML = e.infoWindowHtml;
});