0

现在,我正在创建一个地图,该地图将有一个 javascript 菜单,允许用户使用 Google fusion table 覆盖更改为不同的地图视图。如果您能帮助我解决一个阻碍我完成项目的问题,我将不胜感激。

这是我的谷歌地图 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 还很陌生。

4

3 回答 3

0

变量 Animals 拼写不正确。在函数标题中,您使用小写的“动物”来编写它,而在查询中,您使用大写的“动物”来引用...

于 2011-04-05T10:03:15.390 回答
0

查看表 567682,我没有看到名为“Animals”的列。确保您的表包含名为“Animals”的列,其中包含值“ANIMALS”和“BUSINESS”,因为您的 WHERE 子句正在对该列进行过滤。

于 2011-03-18T21:34:31.627 回答
0

看起来 Fusion 表与您的 LIKE SQL 运算符不兼容,尽管谷歌表示它受支持

我通过将查询更改为使用 CONTAINS 和选项值来使其工作,如下所示:

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

<option value="Animals">Animals</option>
<option value="Business">Business</option>
于 2011-05-16T02:40:58.553 回答