0

GoogleFusionTableのデータを階層化したGoogleMapを含むWebアプリケーションを構築しています。Fusion Tableでマーカーの情報ウィンドウを定義し、すべてが期待どおりにレンダリングされていますが、1つの問題があります。情報ウィンドウで定義されているリンクに含めるために、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つを選択して、情報ウィンドウを表示します。飛行場を表示するには、マップをズームアウトする必要がある場合があります。

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 に答える