【问题标题】:Google Fusion Tables Map filtered by a selection list in JS由 JS 中的选择列表过滤的 Google Fusion Tables Map
【发布时间】:2014-02-27 19:20:26
【问题描述】:

我正在尝试创建一个网站,该网站使用选择列表将 Fusion 表中的数据过滤到谷歌地图上。我找不到通过 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 和 pricedrop 是选择列表的 ID。谢谢你的帮助!

【问题讨论】:

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


    【解决方案1】:

    这里有几个问题。您的 var place、var school、var price 必须是全局变量,即在您的 initialize(){ ... } 函数之外。将它们放在 where var map 下;是。只是 var 价格等。您可以将它们的设置保留在原处。

    替换:

    where: "'CITY' = AVON"
    

    与:

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

    您有超过 1 所学校吗?如果是这样,语法可能会改变。首先让它与 1 一起工作,然后询问如何处理多个学校。我认为它包含。

    【讨论】:

    • 多个项目的语法是 IN ('item1', 'item2')。在单独的注释中,您可能想查看 Derek Eder 的可搜索地图模板,它提供了这种功能:derekeder.com/searchable_map_template
    • 如果您有多个学校,您可能会遇到“请求 uri 太大”的问题。请记住。
    猜你喜欢
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 2013-04-30
    • 1970-01-01
    • 2013-02-06
    相关资源
    最近更新 更多