我正在尝试创建一个网站,使用选择列表将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。谢谢你的帮助!
答案 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。