Sunday, July 1, 2012

Fusion Tables & Google Map FusionTablesLayer


Présentation Fusion Tables


Je viens de découvrir une fonctionnalité de Google bien sympa c'est : Fusion Table. On peut le voir comme un type particulier de document dans Google Drive.

Dans ce document, on peut ajouter de l'information comme dans une table. On y retrouve les types Geometry et Location. On peut donc y stocker de l'information géographique. Comme des coordonnées géographiques ou encore du KML.

Il est aussi possible de géocoder une colonne contenant des adresses(numéro, rue code postal ville). Le géocodage va permettre de retrouver les coordonnées géographiques en fonction de l'adresse.

NB : Pour pouvoir accéder à une map via l'API Google Map, ne pas oublier de régler les accès en partageant le document.

Affichage sur Google Map : FusionTablesLayer


Maintenant avec l'API Google Map, on peut requêter cette table pour en afficher les éléments sur une carte. Le langage pour sélectionner les informations est le SQL.

  1.       var layer = new google.maps.FusionTablesLayer({
  2.              query: {
  3.                       select: 'Adresse',
  4.                       from: '1_8f7R92thvehMtNzFxtiWhz1JtFqZwJsaJ2yMVw',                                                                    where: "Arrondissement = '75013'"
  5.                         },
                 styles: [{
  6.                  markerOptions: {
  7.                          iconName: "small_green"
  8.                 }
  9.            }]
  10.           });
  11.           layer.setMap(map);

Il est aussi possible d'insérer, d'updater des données dans une table via l'API Fusion Tables. Mais cette partie sera développer dans un futur article sur cette API.

On peut rendre l'affichage différent en fonction d'une valeur avec le mot clé where :

  1.      styles: [{
  2.           where : "Arrondissement in ('75013', '75014')",
  3.           markerOptions: {
  4.           iconName: "small_yellow"
  5.           }
  6.      }]
Merci d'avoir lu cet article, un partage sur les réseaux sociaux, ou un commentaire j'en serai très heureux.