Skip to content Skip to sidebar Skip to footer

Fusion Table Query : Zoom On A Marker From An External Link

I'm trying to create links from a text to a marker in a google fusion map. More precisely, I want the map to refresh and zoom on the location selected. A picture will be easier to

Solution 1:

You can use GViz (the google visualization library) to query the fusion table and zoom the map in on the marker.

CODE:

functionchangeQuery(term) {
  layer.setOptions({query:{select:'Latitude', /* was 'Latitude,Longitude', used to work... */from:FT_TableID,
                           where:"Nom contains "+term
                           }

 });

  // zoom and center map on query results//set the query using the parametervar queryText = encodeURIComponent("SELECT 'Latitude', 'Longitude' FROM "+FT_TableID+" WHERE 'Nom' contains '"+term+"'");
  var query = new google.visualization.Query('http://www.google.com/fusiontables/gvizdata?tq='  + queryText);

  //set the callback function
  query.send(zoomTo);
}

functionzoomTo(response) {
if (!response) {
  alert('no response');
  return;
}
if (response.isError()) {
  alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
  return;
} 
  FTresponse = response;
  //for more information on the response object, see the documentation//http://code.google.com/apis/visualization/documentation/reference.html#QueryResponse
  numRows = response.getDataTable().getNumberOfRows();
  numCols = response.getDataTable().getNumberOfColumns();

  var bounds = new google.maps.LatLngBounds();
  for(i = 0; i < numRows; i++) {
      var point = new google.maps.LatLng(
          parseFloat(response.getDataTable().getValue(i, 0)),
          parseFloat(response.getDataTable().getValue(i, 1)));
      bounds.extend(point);
  }
  // zoom to the bounds, if you have only one result, // you may want to do a map.setCenter; map.setZoom to specify the behavior
  map.fitBounds(bounds);
}

example/proof of concept

Post a Comment for "Fusion Table Query : Zoom On A Marker From An External Link"