0

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

4

1 回答 1

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']; ?>";
});
于 2012-06-08T22:37:28.190 回答