2011-03-18 57 views
0

现在,我目前正在创建的地图,将有一个JavaScript菜单,允许用户更改使用谷歌的融合表覆盖不同的地图视图。如果你能帮我解决一个阻碍我完成项目的问题,我将非常感激。问题的JavaScript菜单上的谷歌地图API使用fusiontables

这是我的谷歌地图HTML页面:当我加入这样的代码发生

<html> 
<head> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
<!DOCTYPE html> 
<title>Met Sacramento Internship Map</title> 

<!-- Style --> 
<style> 
    body { font-family: Arial, sans-serif; } 
    #map_canvas { height: 500px; width:600px; } 
</style> 

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 
    var tableid = 567682; 
    var layer = new google.maps.FusionTablesLayer(567682); 

    function initialize() { 
    var latlng = new google.maps.LatLng(37.5213829, -122.172534); 
    var myOptions = { 
     zoom: 8, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), 
     myOptions); 
      layer.setMap(map); 
    } 
    //Change the query based on the user's selection 
function changeMap(delivery) { 
    layer.setQuery("SELECT Address FROM " + tableid + " WHERE delivery LIKE '" + delivery + "'"); 
} 
</script> 

</script> 

</head> 
<body onload="initialize();"> 
    Internship Status <select onchange="changeMap(this.value);"> 
    <option value="%">--Select--</option> 
    <option value="ANIMALS">Animals</option> 
    <option value="BUSINESS">Business</option> 
    </select> <div id="map_canvas"></div> 
</body> 
</html> 

我的问题:

//Change the query based on the user's selection 
function changeMap(animals) { 
    layer.setQuery("SELECT Address FROM " + tableid + " WHERE Animals LIKE '" + Animals + "'"); 

任何帮助将不胜感激,我是相当新的融合表, Google Maps API和Javascript。

+0

我不知道为什么你的DOCTYPE是标题标签下面...... – tcooc 2011-03-18 15:47:06

+0

我不认为有用我的问题做。 – Noah 2011-03-18 16:00:27

回答

0

看着表567682,我没有看到一个名为“动物”栏。确保你的表包含一个名为“Animals”的列,其中包含值“ANIMALS”和“BUSINESS”,因为你的WHERE子句正在过滤该列。

+0

即使我将它们更改为我的表值,它也不起作用。例如,如果我将其更改为兴趣区域或地址,则无法加载。还有其他建议吗? – Noah 2011-03-20 15:00:44

0

变量Animals拼写错误。在函数头你下一个“动物”,而在查询你大写的“动物”是指把它写...

0

貌似是融合表不能用你的SQL LIKE操作踢得好看,即使google says it's supported

我把它通过改变使用查询包含和期权值这样的工作:

layer.setQuery("SELECT Address, 'Interest Area' FROM " + tableid + " WHERE 'Interest Area' CONTAINS '" + delivery + "'"); 

<option value="Animals">Animals</option> 
<option value="Business">Business</option> 
+1

谢谢,这工作得很好。 – Noah 2011-07-14 00:08:39