Buscando una librería cómoda que me dejara interactuar desde Java con Google Maps, recibí una decepcionante carencia de recursos e información sobre el tema: Casi no existen clases en Java que permitan mostrar mapas sin dolores de cabeza, ni jugar con los datos que nos da Google Maps, y las que se encuentran disponibles, son complejas y uno debe andar siguiendo instrucciones extrañas para poder usarlas.

Por eso decidí leer el API de Google Maps (bastante sencillo de entender -quizá debí haber hecho eso desde el comienzo-) y tras unas horas de programación más unas tazas de café, creé dos clases: Mapa.java y Lugar.java.
La primera permite añadir lugares (marcadores) y rutas (entre dos o más lugares, en línea recta) a un mapa, y exportarlo en un JLabel listo para añadirse a un contenedor de Swing. La segunda es la que geolocaliza las direcciones, dando la latitud, longitud e incluso es capaz de calcular la distancia entre dos puntos, por medio de la fórmula de Haversine (según mis pruebas, da un índice de confiabilidad de 99.97%).
Enlaces de descarga
Puedes bajar las dos clases juntas (código fuente, así no debes importar nada: simplemente colocas los dos archivos en la misma carpeta que tus demás clases) en formato .zip o cada una individualmente.
Code time!
Veamos rápidamente cómo crear un sitio y encontrar la distancia que existe con otro:
1 2 3 4 5 6 | // Importante: Omite el uso de acentos y caracteres "peligrosos" Lugar miCasa = new Lugar("calle falsa 31416 blabla"); // Ahora declaremos el sitio con el que lo compararemos Lugar otroSitio = new Lugar("calle verdadera 27182 bleble"); // Imprimimos la distancia existente entre los dos: System.out.println("La distancia es " + miCasa.getDistancia(otroSitio)); |
Ahora cómo añadirlo a un mapa y mostrarlo (aprovechamos las variables de arriba), junto a una ruta:
7 8 9 10 11 12 | Mapa miMapaCool = new Mapa(); miMapaCool.agregarLugar(miCasa); miMapaCool.agregarLugar(otroSitio); miMapaCool.agregarRuta(miCasa, otroSitio); // Ahora lo agregamos a nuestro contenedor: miFrame.add(miMapaCool.getJLabel()); |
Comentarios
Si tienes alguna duda, comentario, amenaza de muerte, declaración de amor u oferta de trabajo, hazla a través de los comentarios o enviando un correo a: enrique[arroba]vazquezcervantes[punto]com




Hola carnal … muchísimas gracias esto me a ayudado bastante …
De verdad gracias
mis respetos eres el único que a puesto algo sobre el tema de la geolocalización
sigue así!!
Gracias arny