将变量传递给FusionTableLayer中的信息窗口

时间:2012-06-08 14:38:45

标签: google-maps-markers google-fusion-tables infowindow

我正在构建一个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。输入您的邮政编码并选择其中一个机场标记以查看信息窗口。您可能需要缩小地图才能看到机场。

1 个答案:

答案 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']; ?>";
});