2011-12-15 3 views
0

J'ai une carte Google Map qui extrait les données des tables Fusion et les affiche. Lorsque vous cliquez sur un polygone, la carte effectue un zoom avant et affiche d'autres polygones dans ce polygone d'origine. Ceci est accompli en utilisant deux tables de fusion séparées et quelques jquery. Mon problème consiste à afficher uniquement les polygones du polygone d'origine, et non l'intégralité de l'ensemble (par exemple, afficher uniquement les comtés dans l'état cliqué, pas tous les comtés aux États-Unis). Les sous-polygones sont stockés en utilisant un code xxyy où xx est le polygone d'origine et yy est le sous-polygone (donc 1001 serait le 10ème état et le premier comté dans cet état). Comment, en utilisant le script Fusion Tables "comme SQL", puis-je tirer uniquement les sous-polygones avec les deux premiers chiffres du code étant égal à un nombre spécifique? Voici ce que j'ai essayé:Comme opérateur avec le script Fusion Tables SQL

map.setOptions({ 
    'query': 
    { 
    select: 'geometry', 
    from: ftnumber, 
    where: "'name' starts with " + stateCode 
    } 
}); 

nom étant la colonne avec le code à 4 chiffres et statecode étant une variable qui a le code à 2 chiffres pour l'état stockées.

J'ai essayé aussi:

map.setOptions({ 
    'query': 
     { 
     select: 'geometry', 
     from: ftnumber, 
     where: "'name' like " + stateCode + "__" 
     } 
}); 

La deuxième option est préférable (si possible) que je pouvais utiliser cette syntaxe pour percer encore plus bas si nécessaire.

Solution finale:

  • colonne 'nom' est défini au numéro
  • requête est

    stateCodeHigh = statecode + 100; map.setOptions ({ 'requête': { sélectionner: 'géométrie', de: ftnumber, où: "name> =" + statecode + "et le nom <" + stateCodeHigh } });

Répondre

0

Ces deux requêtes devraient fonctionner si la colonne 'name' est de type String.

Vérifiez le type de la colonne en sélectionnant Édition> Modifier les colonnes. Cliquez sur la colonne 'nom' dans la colonne de gauche. Si la colonne n'est pas de type Texte, définissez la colonne sur Texte à l'aide du menu déroulant Type.

+0

Ok, c'était la première partie de mon problème. Je l'ai eu comme une colonne de nombre (et en ai toujours besoin en tant que tel). Je passe donc à l'utilisation de deux opérateurs de comparaison numériques. 'où:" 'name'> = "+ variable1 +" AND 'nom' <"+ variable2' où variable1 est le nombre bas et variable2 est le nombre élevé. Cela ne semble pas fonctionner. Quelque chose à voir avec l'opérateur AND? – Josh

+0

Compris. Notez que je n'ai pas d'espace entre les guillemets et l'opérateur AND. Donc le comp rendait variable1AND qu'il ne comprend pas mais il ne crachait pas de bogue. Merci pour l'aide. – Josh