Передать переменную в информационное окно в FusionTableLayer

Я создаю веб-приложение, которое включает в себя карту Google Map с данными из таблицы Google Fusion Table. Я определил информационное окно для маркеров в сводной таблице, и все отображается, как и ожидалось, но у меня есть одна проблема. Мне нужно передать переменную сеанса из моего веб-приложения, чтобы включить ее в ссылки, определенные в информационном окне, но, похоже, я не могу найти способ сделать это. Ниже приведен 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. Введите свой почтовый индекс и выберите один из маркеров аэропорта, чтобы увидеть информационное окно. Возможно, вам придется уменьшить масштаб карты, чтобы увидеть аэродром.


person Jeff    schedule 08.06.2012    source источник
comment
У вас есть SupressInfoWindows:true, что означает, что вы создаете и заполняете infoWindow, а не Fusion Table. Если у вас есть переменная сеанса на вашей странице, вы сможете добавить ее при создании или открытии окна.   -  person Eric Bridger    schedule 08.06.2012


Ответы (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']; ?>";
});
person Kathryn Hurley    schedule 08.06.2012