El API de Google Maps es muy completo. Permite desde incluir mapas en tu sitio web hasta geolocalización HTML5, poligonos, rutas, etc.
El problema es su complejidad. Google Maps API v3 está inspirado en Java, mientras que Javascript es más conocido por su estilo idiomático, simple y directo. La complejidad también hace que personas no tan expertas en programación prefieran insertarlo como iframe (ugh) y simplemente no aprender mapas.
HPNeo y Yaraher de Xenda liberaron hoy Gmaps.js, un proyecto que apunta a reimplementar todo el poder del API de Google Maps con la simpleza de jQuery y Javascript.
Insertar un mapa simple con Gmaps.js
Creas en tu HTML algún div con el tamaño del mapa que quieres, llamalo "pony", luego en el header insertas jQuery, el API de Maps y Gmaps.js:
Código :
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript" src="https://raw.github.com/HPNeo/gmaps/master/gmaps.js"></script>
Y por último, el código del mapa
Código :
$(document).ready(function(){ map = new GMaps({ div: '#pony', lat: -12.043333, lng: -77.028333 }); });
Y ya está. Por defecto el zoom es de 15, pero puedes cambiarlo agregando "zoom" a los parámetros iniciales.
Los ejemplos de lo que puedes hacer son muchisimos. Polígonos, rutas estilo GPS, eventos del mapa entre muchos otros.
Uno básico es agregar markers al mapa. Al código de arriba le agregamos esto y ya está:
Código :
map.addMarker({ lat: -12.043333, lng: -77.028333, title: 'Lima', click: function(e) { alert('You clicked in this marker'); } });
Nota para Gmaps.js ¿Podrían mejorar su sitio web por favor?
Entiendo que lanzar es importante, que la velocidad es clave y que querían ser publicos ya, pero hay un par de arreglos super sencillos y hasta obvios que aumentarían increiblemente la cantidad de personas que pueden impactar.
- ¿Por qué el logo al darle click, estando en "examples", lleva a "examples"!? La única forma que encontré de descargar Gmaps.js desde Hacker News fue cambiar la URL a mano.
- En todas las URLs del sitio debería estar el enlace para descargar y para verlo en Github. En todas.
- No mataría especificar en algún lado que se requiere embeber el API de Maps y luego el de Gmap.js. Miren como lo hace Gmap3.
Eso es todo, un excelente proyecto. Puedes seguirlo en Github para enterarte de todos los cambios. Felicidades a [url=https://twitter.com/#!/yaraher]Yaraher[/url] y a [url=https://twitter.com/#!/hpneo]HPNeo[/url].
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Diego el 02 de Junio de 2012
Por Freddie el 02 de Junio de 2012
Por Aoyama el 02 de Junio de 2012
¡Felicidades a Yaraher y HPNeo!
Por mals1990 el 02 de Junio de 2012
Por snakeningo el 02 de Junio de 2012
Por hpneo el 02 de Junio de 2012
Por ahora, existe un método addMarkers, al que se le puede pasar un array de opciones idéntica a las opciones de addMarker. Pronto espero agregar un método para agregar marcadores de un JSON o similar.
!Saludos, y gracias por la difusión!
Por Yaraher el 02 de Junio de 2012
Sobre el diseño, de acuerdo con esos puntos. De hecho aparecer en HackerNews fue una sorpresa y no esperábamos que alguien lo mande. De todas formas si se estaban preparando cambios y nos obligará a tenerlos listos.
Y se aceptan issues.
Por ookami31 el 02 de Junio de 2012
Por mostaza4 el 03 de Junio de 2012
PD: me parece genial el trabajo de hacerlo en ingles pero deberían tener también la opción es español ya que si queres usar la api de google maps (en google) solo una parte esta en español mientras que el mercado en ingles puede leer todo el contenido. Si tambien pones TODO en español ese mercado va a ser solo suyo
Exitos!
Por JoseAlejandro_Realza el 05 de Junio de 2012
Por jordano_p el 05 de Junio de 2012
Para utilizarlo basta con insertar en el header el API de Maps y Gmaps.js .
Código :
Para llamarlo desde tu HTML al igual que Gmaps.js solo debes crear un div con el tamaño que quieres que presente el mapa con un ID que luego utilizaras en el código javascript.
Luego en el head o en otro archivo .js introduce el código que generara tu mapa con tus configuraciones.
Código :
Parámetro posibles
Código :
Pueden tener más info sobre esta herramienta en su página web.
En fin veo que son herramientas muy parecidas, quizás freddi me pueda decir que tiene Gmaps de novedoso o que no pueda hacer en mi mapa con gMap.
Por hpneo el 07 de Junio de 2012
Además, gmaps tiene soporte para rutas, líneas, polígonos, capas, por mencionar puntos que veo que gMap no tiene.
De todas formas, siempre he creído que uno debe utilizar las herramientas que mejor le sirvan para sus propósitos, y creo que gMap y gmaps.js van enfocados por lados distintos de cómo trabajar con mapas.
Por rebeliongraficks el 09 de Junio de 2012
Por Cotelandia el 25 de Septiembre de 2012
Por elo950 el 08 de Octubre de 2012
Por elo950 el 08 de Octubre de 2012
Por pedro el 01 de Enero de 2013
No tengo conocimientos de programación html, java ni javascript, y lo que hago son siempre cosas sencillas, gracias a la inestimable ayuda de gente como vosotros. Muy ocasionalmente aporto algo que pueda servir a la gente que no sabe programación.
Sin duda gmaps.js será de gran ayuda, aún no lo he probado. He visto los ejemplos, y me gustaría saber cómo puedo incluir un mapa en una web de modo que yo fijo el punto de destino y el usuario teclea el nombre de una ciudad y al hacer clic en "Calcular ruta" devuelva el mapa con la ruta desde la ciudad origen hasta el punto de destino fijo que yo había preparado...
¿Alguien me echa una mano?
Gracias por anticipado.
Por 2plu el 06 de Mayo de 2013
He visto en la documentación un método 'refresh', pero no se como implementarlo.
Gracias
Por mahoni el 16 de Junio de 2013
[email protected]
Por robacorsa el 06 de Enero de 2014
Por Jose Abraham el 15 de Marzo de 2014
Por Alex el 27 de Marzo de 2014
Por eareddhel el 07 de Agosto de 2014
Por noelia el 22 de Noviembre de 2014
me muestra el mapa con un recorrido q sale por json del servidor..pero no me carga el clima..
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
directionsDisplay.setMap(map);
$.get('respuesta.php',function(json){
var j = eval(json);
var start=j[1];
var waypts = [];
checkboxArray = j[0];
var end =checkboxArray[checkboxArray.length-1]["latlong"] ;
for (var i = 0; i < checkboxArray.length; i++) {
waypts.push({
location:checkboxArray[i]["latlong"],
stopover:true}
);
generateWeather(i);
};
function generateWeather (i){
$.ajax({
url: "https://api.forecast.io/forecast/0aa5b2d9324a664c8ca8dc86fe912454/" + checkboxArray[i]["latlong"],
jsonp: "callback",
dataType: "jsonp",
success: function(lugar) {
var temperatura=(lugar.currently.temperature- 32)/ 1.8;
map.OverlayView({
coord:checkboxArray[i]["latlong"],
content: '<div class="overlay">' + "<img src='../../scripts/img/" + lugar.currently.icon + ".png'" + ">" + '<div>' + Math.round(temperatura) + ' C° </div> </div>'
});
},
});}
//muestra en un overlay el estado del tiempo
function mostrarTiempo(lugar,i){
var temperatura=convert(lugar.currently.temperature);
map.OverlayView({
coord:checkboxArray[i]["latlong"],
content: '<div class="overlay">' + "<img src='../../scripts/img/" + lugar.currently.icon + ".png'" + ">" + '<div>' + Math.round(temperatura) + ' C° </div> </div>'
});
}
function convert (fahrenheit) {
celsius = (fahrenheit-32) / 1.8;
return celsius;
} ;
var request = {
origin: start,
destination: end,
waypoints: waypts,
optimizeWaypoints: true,
travelMode: google.maps.TravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status === google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
});
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
{% endblock %}
{% block separador %}
<h3>RECORRIDO</h3>
{% endblock %}
{% block contenido %}
<div id="map-canvas" ></div>
{% endblock %}
Por Alex el 25 de Noviembre de 2014
Por Ernie el 28 de Noviembre de 2014
Muchas gracias
Por Alan Moneymaker el 04 de Abril de 2015
mi código es el siguiente y solo funciona en firefox
$(document).ready(function(e) {
latitud = $("#val_lat").val();
longitud = $("#val_lng").val();
map = new GMaps({
div: '#ajax_url_map',
lat: latitud,
lng: longitud
});
map.addMarker({
lat: latitud,
lng: longitud,
title: 'Your',
click: function(e) {
alert('La boda es aquí');
}});
});