2011-03-18 3 views
0

Actuellement, je suis en train de créer une carte qui aura un menu javascript permettant aux utilisateurs de changer à différentes vues de la carte en utilisant les recouvrements de la table de fusion Google. J'apprécierais vraiment si vous pouviez m'aider avec un problème qui m'empêche de terminer le projet.Problème avec Javascript Menus sur Google Map API utilisant fusiontables

Ceci est mon Google Maps HTML Page:

<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> 

Mon problème se produit lorsque ajouter ce code:

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

Toute aide serait grandement appréciée, je suis assez nouveau aux tables de fusion, l'API Google Maps et Javascript.

+0

Je me demande pourquoi votre dOCTYPE est en dessous de la balise de titre ... – tcooc

+0

Je ne pense pas que doit faites avec ma question. – Noah

Répondre

0

En regardant la table 567682, je ne vois pas une colonne nommée "Animaux". Assurez-vous que votre table contient une colonne nommée "Animals" avec les valeurs "ANIMALS" et "BUSINESS", car votre clause WHERE filtre sur cette colonne.

+0

Même si je les change à la valeur de ma table, cela ne fonctionne pas. Par exemple, si je le change en zone d'intérêt ou adresse, il ne se charge pas. D'autres suggestions? – Noah

0

La variable Animaux n'est pas orthographiée correctement. Dans l'en-tête de la fonction, vous écrivez avec un "animaux" plus bas alors que dans la requête vous faites référence avec des majuscules "Animaux" ...

0

On dirait que cette table Fusion ne joue pas bien avec votre opérateur SQL LIKE, même si google says it's supported

Je l'ai eu de travail en changeant la requête à utiliser CONTIENT et les valeurs d'option comme ceci:

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

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

Merci, cela a bien fonctionné. – Noah