谷歌融合表格地图由JS中的选择列表过滤

时间:2014-02-27 19:20:27

标签: google-maps-api-3 google-fusion-tables

我正在尝试创建一个网站,使用选择列表将Fusion表中的数据过滤到Google地图上。我找不到通过JS查询传递变量的正确方法(或者至少只是下拉列表值。)任何人都可以帮忙吗? 这是我当前的代码......我希望地方,学校和价格变量在WHERE子句中。所以我想用选择列表的值替换AVON这个词。

  <script>
    var map;

    function initialize() {
      var indy = new google.maps.LatLng(39.788945, -86.149937);
      var place = document.getElementById("citydrop").value;
      var schools = document.getElementById("schooldrop").value;
      var price = document.getElementById("pricedrop").value;
      map = new google.maps.Map(document.getElementById('map-canvas'), {
        center: indy,
        zoom: 10
      });

      var layer = new google.maps.FusionTablesLayer({
        query: {
          select: 'Address',
          from: '1DsfPFeKrW2pegZhfSRJmLqYrlJc0HLF3nZcK4kQ',
          where: "'CITY' = AVON"
        }
      });
      layer.setMap(map);
    }

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

</script>

另一个注意事项:citydrop,schooldrop和pricingrop是选择列表的ID。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

这里有几个问题。你的var place,var schools,var price需要是全局的,即你的initialize(){...}函数。把它们放在var map下面;是。只是var price等。您可以将它们的设置保留在原来的位置。

替换:

where: "'CITY' = AVON"

使用:

where: "'CITY' = 'AVON' AND 'SCHOOLS' = '" + schools + "' AND 'PRICE' = '" + price + '";

你有超过1所学校吗?如果是这样,语法可能会改变。首先使用1然后询问如何处理多所学校。我认为这是CONTAINS。