Si lo que necesitas es integrar y mostrar la herramienta de Google Maps en Java, entonces la biblioteca JxBrowser de Java es lo que necesitas.
JxBrowser es una biblioteca de Java multiplataforma que permite añadir un componente de Chromium, basado en el navegador web de Google, la cual funciona en aplicaciones Java Swing para mostrar páginas web creadas con HTML5, CSS3, JavaScript, AJAX, etc. El componente de navegador que muestra las páginas web es totalmente ligero.
Comparte este articulo y obtén el contenido premium!
Con el fin de añadir y mostrar Google Maps en la aplicación de escritorio en Java, sólo tienes que crear la instancia del navegador, integrarlo en un JFrame ó cualquier otro contenedor Swing y cargar la URL http://maps.google.com. Para el siguiente ejemplo seria necesario contar con una licencia que va desde los $1,599 hasta los $14,599, claro que no todos contamos con una buena cantidad solo para un momento, asi que podemos hacer uso de una licencia gratuita que dura 30 dias.
Para este ejemplo descargare la licencia de prueba, tan solo tendré que enviar mediante un correo la petición de uso y listo, de regreso tendremos la URL de descarga para el archivo de la licencia.
1. Debemos de ir a la siguiente URL.
2. Luego, pulsamos el botón Evaluate Now.
3. Ingresamos el nombre, correo y una explicacion del por que deseamos tener la licencia de prueba.
4. Al pulsar Download Evaluation Key, se descargará inmediatamente la llave.
Bueno ya tenemos la licencia gratuita con la que podremos trabajar. Lo siguiente es descargar JxBrowser para trabajar con el ejemplo. Para esto no dirigimos al siguiente link, descargamos el archivo.
Una vez descargado tanto la licencia como la librería, la añadimos al nuevo proyecto que creamos para la aplicación de Java con Google Maps. El proyecto debería de tener el siguiente contenido en las librerías.
import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.BrowserFactory;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
public class GoogleMapsEnJava {
public static void main(String[] args) {
Browser browser = BrowserFactory.create();
JFrame frame = new JFrame("JxBrowser Google Maps En Java");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.add(browser.getView().getComponent(), BorderLayout.CENTER);
frame.setSize(700, 500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
browser.loadURL("http://maps.google.com");
}
}
Una vez que se compila y ejecuta el ejemplo de Google Maps en Java, se debería de ver el siguiente resultado:
Tienes dudas de cómo usar JxBrowser en la aplicación de Java, te invito a leer la documentación del Programador JxBrowser.
Y si queremos dar mas interacción por parte del usuario? Por ejemplo, dar la posibilidad al usuario, de alejar y acercar el mapa en la aplicación de Java. En este caso, es necesario comunicarnos con la API de Google Maps a través de JavaScript. La API de JxBrowser permite ejecutar cualquier código JavaScript en la página web que se ha cargado.
Para dar la interacción es recomendable crear nuestro propio contenido web (HTML, JavaScript, CSS, etc), cargarlo al contenedor y manejar los objetos de la interacción que hayan. Ahora, deberás copiar el siguiente contenido en un nuevo archivo llamado mapas.html, claro, el nombre puede ser el que tu elijas:
Y cargamos el archivo mapas.html utilizando el siguiente código:
browser.loadURL("C:mapas.html");
El resultado debe ser el siguiente:
Ahora podemos acceder al objeto google.maps.Map de JavaScript e invocar su los métodos para acercar y alejar el mapa. Para cambiar el zoom del mapa podemos usar el método map.setZoom(zoom: número). Vamos a añadir dos botones, uno para acercar y otro para alejar:
import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.BrowserFactory;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
public class GoogleMapsEnJava {
public static final int MIN_ZOOM = 0;
public static final int MAX_ZOOM = 21;
private static int zoomValue = 5;
public static void main(String[] args) {
final Browser browser = BrowserFactory.create();
JButton zoomInButton = new JButton("Acercar");
zoomInButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (zoomValue < MAX_ZOOM) {
browser.executeJavaScript("map.setZoom(" + ++zoomValue + ")");
}
}
});
JButton zoomOutButton = new JButton("Alejar");
zoomOutButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (zoomValue > MIN_ZOOM) {
browser.executeJavaScript("map.setZoom(" + --zoomValue + ")");
}
}
});
JPanel toolBar = new JPanel();
toolBar.add(zoomInButton);
toolBar.add(zoomOutButton);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.add(browser.getView().getComponent(), BorderLayout.CENTER);
frame.add(toolBar, BorderLayout.NORTH);
frame.setSize(700, 500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
browser.loadURL("C:mapas.html");
}
}
Ahora puedes acercar y alejar el mapa directamente desde la aplicación de Java:
Comparte este articulo y obtén el contenido premium!
Como ya te podrás imaginar, no solo podrás cargar Google Maps, podrás cargar cualquier otra URL en un contenedor en Java.
¿Has notado aplicaciones desconocidas o un drenaje inesperado de la batería? Estos podrían ser indicios…
Saber cómo Restablecer un iPhone a su Estado de Fábrica es clave para solucionar problemas…
Motorola ha confirmado el lanzamiento de Moto G84 5G y Moto G54 5G en India,…
Recuerde WizardCoder, ¿el codificador de IA que cubrimos recientemente aquí en Windows Report? Nos jactamos…
Los investigadores han descubierto numerosos fallos de seguridad en el complemento WordPress Jupiter X Core…
Para solucionar problemas del sistema de PC con Windows, necesitará una herramienta dedicada Fortect es…
Ver comentarios
Hola excelente explicacion! Ahora tengo una duda muy importante, es posible realizar eta aplicaciòn y leer los mapas sin conexion a internet???? Agradeceria una respuesta
Gracias
Hola muy bueno tu tutorial. Tengo dos dudas que no logro resolver:
1) ¿Como hago para obtener lat y long de un punto en el mapa? Quiero que el usuario marque el punto y saber los datos.
2) ¿Como hago para colocar un marcador en el mapa? Por ejemplo un punto que definió anteriormente el usuario.
Saludos y gracias