我正在构建一个Web应用程序,其中包含一个Google Map,其中包含来自Google Fusion Table的数据。我已经为Fusion Table中的标记定义了信息窗口,并且所有内容都按预期呈现,但我有一个问题。我需要从我的Web应用程序传递一个会话变量,以包含在信息窗口中定义的链接中,但似乎无法找到执行此操作的方法。下面是我目前用来渲染地图的javascript:
var myOptions = {
zoom: 10,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: new google.maps.LatLng( 40.4230,-98.7372)
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
// Weather
weatherLayer = new google.maps.weather.WeatherLayer({
temperatureUnits: google.maps.weather.TemperatureUnit.FAHRENHEIT
});
weatherLayer.setMap(map);
//Hobby Stores
var storeLayer = new google.maps.FusionTablesLayer({
query: { select: "col2", from: "3991553" },
map: map,
supressInfoWindows: true
});
//Club Sites
var siteLayer = new google.maps.FusionTablesLayer({
query: { select: "col13", from: "3855088" },
styles: [{ markerOptions: { iconName: "airports" }}],
map: map,
supressInfoWindows: true
});
我希望能够在调用google.maps.FusionTableLayer中传递某种类型的参数,该参数传递要包含在信息窗口中的值,但无法找到执行此操作的方法。
要查看实际页面,请访问www.dualrates.com。输入您的邮政编码并选择其中一个机场标记以查看信息窗口。您可能需要缩小地图才能看到机场。
答案 0 :(得分:1)
此示例显示如何自定义信息窗口内容:
https://developers.google.com/fusiontables/docs/samples/change_infowindow_content
您将更新以下函数以包含特定表的信息并添加会话变量。假设您正在使用php,它可能看起来像这样:
google.maps.event.addListener(layer, 'click', function(e) {
// Change the content of the InfoWindow
e.infoWindowHtml = e.row['Store Name'].value + "<br>";
// If the delivery == yes, add content to the window
if (e.row['delivery'].value == 'yes') {
e.infoWindowHtml += "Delivers!";
}
e.infoWindowHtml += "<?php echo $_SESSION['yourvariable']; ?>";
});