Lo primero que vamos a hacer, es obtener las coordenadas de los sectores a partir de la cadena de geohash. Para esto vamos a usar una librería de Python llamanda python-geohash. Usando el método bbox de ésta librería, podemos potener las coordenadas de los puntos extremos:
donde n es el norte, s - el sur, w - el oeste y e es el este. Entonces los puntos serán (-74.15771484375, 4.6197509765625), (-74.146728515625, 4.6197509765625), (-74.14672851562, 4.6142578125) y (-74.15771484375, 4.6142578125).
Ahora construimos una vista (en éste ejemplo usamos Flask) para devolver un GeoJSON, que vamos a consumir desde el código JavaScript.
y el archivo JavaScript para crear el mapa y obtener los datos de nuestra vista:
map.js
1234567891011121314151617181920212223242526
$(function(){'use strict';L.mapbox.accessToken='YOUR_MAPBOX_ACCESS_TOKEN';// Crear un mapa, especificando el centro y zoomvarmap=L.mapbox.map('map','mapbox.streets').setView([4.66336863727521,-74.07231699675322],12)// Obtener el GeoJSON de nuestra vista$.get('/maps/speeds-map-data',function(data){L.geoJson(data,{style:function(feature){returnfeature.properties.style;},onEachFeature:function(feature,layer){// Mostrar un pop-up con la velocidad mara cada sectorvarpopupContent='';if(feature.properties&&feature.properties.popupContent){popupContent+=feature.properties.popupContent;}layer.bindPopup(popupContent);}}).addTo(map);});});
Y voilà: podemos mostrar un mapa de calor a nuestros usuarios: