Google maps api 3 从谷歌地图上Fusion Tables图层的信息窗口中引入数据

Google maps api 3 从谷歌地图上Fusion Tables图层的信息窗口中引入数据,google-maps-api-3,google-fusion-tables,infowindow,Google Maps Api 3,Google Fusion Tables,Infowindow,我正在构建我的第一个融合表,并将两个融合表放入谷歌地图中——一个是多边形,一个是点。我不想在单击多边形或点时显示常规信息窗口,而是想从Fusion表中提取一些数据,但它无法工作: <script> function initialize() { var england = new google.maps.LatLng(53.2, -2); map = new google.maps.Map(document.getElementById('map_canvas')

我正在构建我的第一个融合表,并将两个融合表放入谷歌地图中——一个是多边形,一个是点。我不想在单击多边形或点时显示常规信息窗口,而是想从Fusion表中提取一些数据,但它无法工作:

<script>
  function initialize() {
    var england = new google.maps.LatLng(53.2, -2);
    map = new google.maps.Map(document.getElementById('map_canvas'), {
      center: england,
      zoom: 8,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    layer1 = new google.maps.FusionTablesLayer({
      query: {select: 'geometry', from: '1HgGUc72F2Wlp6dvy4GWvLyWrl1kC6aJhnM7jPyc'},
      styles: [
        { where: "Score = 0", polygonOptions: { fillColor: "#cdcdcd", fillOpacity: 0.3 } },
        { where: "Score = 1", polygonOptions: { fillColor: "#FF0000", fillOpacity: 0.5 } },
        { where: "Score = 2", polygonOptions: { fillColor: "#FF7E00", fillOpacity: 0.5 } },
        { where: "Score = 3", polygonOptions: { fillColor: "#008000", fillOpacity: 0.5 } }],
    options: {suppressInfoWindows: true},
    map: map,
    });
    google.maps.event.addListener(layer1, 'click', function(e) {e.infoWindowHtml = "Score" + e.row['Score'].value;}
    });

    layer2 = new google.maps.FusionTablesLayer({
    query: {select: 'postcode', from: '1bawAKwQAUGE4mzYSyw4lTbOcgp7MgIGOLROel8Y'},
    options: {suppressInfoWindows: true},
    map: map,
     });
    google.maps.event.addListener(layer2, 'click', function(e) {e.infoWindowHtml = "Postcode" + e.row['Postcode'].value;}
    });

    google.maps.event.addDomListener(window, 'load', initialize);

  }
</script>
</head>
<body onLoad="initialize()">
  <div id="map_canvas"></div>
</body>
</html>
,infowindows被抑制,直到我添加了AddListener和AddDomainListener。有人能帮我回到正轨吗

您的新代码中有语法错误,额外两个}
在初始化函数中调用addDomListener并不重要,因为在感谢geocodezip中仍然有它。我应该在我最初的帖子中强调“一些”这个词。我想做的只是从Fusion表中引入一些字段-显然,两个层/表的不同字段。这就是为什么我在每一层都有单独的addListener/addDomListener,即使这是错误的!。我不明白你的评论。我不是一个读心术的人,我不知道你想要和不想要哪部分数据。您当然可以更改提供的代码以执行任何您想要的操作,这只是一个示例/概念证明。感谢您提供的示例/概念证明。假设我想从每个层导入一个不同的变量,并将其添加到信息窗口。我已经为每个层复制了openIW,并尝试执行以下操作:函数openIW1FTevent{//infoWindow.setContentFTevent.infoWindowHtml;//infoWindow.setPositionFTevent.latLng;infoWindow.setOptions{content:'Score:'+e.row['Score'].value,position:FTevent.latLng,pixelOffset:FTevent.pixelOffset};infoWindow.openmap;}但是我现在单击地图时没有得到任何信息。请查看javascript控制台。我得到的e是没有定义的。解决这个问题。你的尝试不会有多大成功。当您单击一个点时,单击不会将单击事件传递到基础多边形图层,并且如果没有办法更改,请确认。只要两个表之间没有任何关系,这就永远不会起作用,因为如果没有这种关系,就没有机会按给定的坐标请求两个表。
<script>
 function initialize() {
 var england = new google.maps.LatLng(53.2, -2);
map = new google.maps.Map(document.getElementById('map_canvas'), {
  center: england,
  zoom: 8,
  mapTypeId: google.maps.MapTypeId.ROADMAP
});

layer1 = new google.maps.FusionTablesLayer({
  query: {select: 'geometry', from: '1HgGUc72F2Wlp6dvy4GWvLyWrl1kC6aJhnM7jPyc'},
  styles: [
    { where: "Score = 0", polygonOptions: { fillColor: "#cdcdcd", fillOpacity: 0.3 } },
    { where: "Score = 1", polygonOptions: { fillColor: "#FF0000", fillOpacity: 0.5 } },
    { where: "Score = 2", polygonOptions: { fillColor: "#FF7E00", fillOpacity: 0.5 } },
    { where: "Score = 3", polygonOptions: { fillColor: "#008000", fillOpacity: 0.5 } }],
options: {suppressInfoWindows: true},
map: map,
});
google.maps.event.addListener(layer1, 'click', function(e) {e.infoWindowHtml = "Score" + e.row['Score'].value;});
layer2 = new google.maps.FusionTablesLayer({
query: {select: 'postcode', from: '1bawAKwQAUGE4mzYSyw4lTbOcgp7MgIGOLROel8Y'},
options: {suppressInfoWindows: true},
map: map,
 });
 google.maps.event.addListener(layer2, 'click', function(e) {e.infoWindowHtml = "Postcode" + e.row['Postcode'].value;});
 }
 google.maps.event.addDomListener(window, 'load', initialize);
 </script>
 </head>
  <body>
   <div id="map_canvas"></div>
</body>
</html>
function openIW(FTevent) {
  // infoWindow.setContent(FTevent.infoWindowHtml);
  // infoWindow.setPosition(FTevent.latLng);
  infoWindow.setOptions(
    { 
     content: FTevent.infoWindowHtml,
     position: FTevent.latLng,
     pixelOffset: FTevent.pixelOffset
    });
  infoWindow.open(map);
}
google.maps.event.addListener(layer, 'click', function(e) {
    console.log("E.Row! : "+ e.row['name'].value);
});