2009-06-15 32 views
24

Me preguntaba si hay una biblioteca Java que actúe como un contenedor para la API de Google Maps. Lo que me interesa es mostrar un mapa satelital de una región específica (lon, lat) en mi aplicación de escritorio. No tiene que ser específicamente Google Maps, cualquier servicio de mapas haría el truco.API Java para Google Maps (o similar)

Lo que necesito es sin embargo una biblioteca para trabajar con un cliente de escritorio, sin javascript, etc. GWT

¿Alguna idea?

+0

Por cierto, lea los términos del servicio de la API de Google Maps, antes de crear un cliente de escritorio. Como paracycle dice antes, Static Maps debe mostrarse en un navegador web. Cheers –

Respuesta

9

Si usted está buscando para mostrar una imagen de mapa de satélite para una latitud y longitud específica (sin los mapas de Google panorámica/zoom, etc.), entonces debería verificar Google Static Maps.

Solo necesita construir una cadena URL, luego hacer una solicitud HTTP (desde su implementación java) para la imagen (en el formato que desee). Se puede especificar un montón de parameters en la URL para obtener la imagen de satélite que está buscando:

Desde la URL:

http://maps.google.com/staticmap?center=40,26&zoom=1&size=150x112&maptype=satellite&key=ABQIAAAAgb5KEVTm54vkPcAkU9xOvBR30EG5jFWfUzfYJTWEkWk2p04CHxTGDNV791-cU95kOnweeZ0SsURYSA&format=jpg 

EDIT: Ok, en realidad eliminado esta respuesta porque Descubrí section 10.8 in the TOS explícitamente prohíbe el acceso a mapas estáticos desde fuera de un navegador. Pero luego descubrí este FAQ update que parece permitirlo. Podría preguntarle a una persona de Google y obtener la última palabra.

EDITAR: Gracias Paracycle, no estoy seguro de si es una nueva adición a las preguntas frecuentes, pero en cualquier caso es bastante explícita, you are not allowed to do this.

+2

En realidad, en otra sección de las mismas preguntas frecuentes (http://code.google.com/apis/maps/faq.html#mapsformobile), también indican que: "Tenga en cuenta que no está permitido usar la API de Static Maps fuera". de aplicaciones basadas en navegador ". – paracycle

+2

Google ** does ** permite el uso de sus servicios de imágenes estáticas en aplicaciones de escritorio. Consulte [Preguntas frecuentes] (https://developers.google.com/maps/faq?hl=en) en la pregunta "¿Puedo usar Google Maps en mi aplicación no Web?" – dARKpRINCE

+0

[Enlace de las Preguntas frecuentes] (https://developers.google.com/maps/faq#tos_nonweb) – dARKpRINCE

0

Es probable que necesite ir con los servicios web de Microsoft Map Point. No sé si Google ofrece algo similar sin Javascript.

1

inserte un control de navegador web en su cliente, mostrando una página HTML que utiliza la API de JavaScript. Todo lo demás se romperá eventualmente, ya que al menos Google y Microsoft tienden a cambiar el formato de enlace de sus imágenes aéreas regularmente para dificultar su raspado y almacenarlas fuera de línea (porque no han comprado licencias de los proveedores de contenido para el almacenamiento fuera de línea de estas imágenes).

Otros servicios (como el servicio de geolocalización de Googles) pueden utilizarse fácilmente desde Java, y los "mapas normales" también funcionan bien, pero las antenas son complicadas (al menos cuando lo intenté la última vez), pero por supuesto si puede enviar una actualización cuando cambie el formato ...

editar: Puede ser diferente con el servicio Google Maps for Enterprises, pero se espera pagar una cantidad de cinco dígitos en dólares por ello ...

9

Google maps no permite el uso de sus imágenes en aplicaciones de escritorio. Microsoft tiene una colaboración con USGS al http://terraserver-usa.com/. Hay un freely available web service con un WSDL. Puede usar bibliotecas comunes de enlace WSDL de Java como Axis o CXF para crear un objeto java para acceder al servicio.

Además, la NASA tiene el proyecto World Wind que tiene una API de Java. Las imágenes no son las imágenes de Google, pero gran parte de las imágenes de Google se basan en estas imágenes.

+1

Google ** does ** permite el uso de sus servicios de imágenes estáticas en aplicaciones de escritorio. Consulte [Preguntas frecuentes] (https://developers.google.com/maps/faq?hl=en) en la pregunta "¿Puedo usar Google Maps en mi aplicación no Web?" – dARKpRINCE

0

Es posible que desee echar un vistazo a la Google Maps Data API oficial, que creo que tiene un cliente de Java. Sin embargo, creo que esto es solo para recuperar/actualizar la porción de "datos" de Maps, por lo que no le daría acceso (para lo cual probablemente no tenga licencia) para las fotos reales.

+0

Sí, esto es solo para recuperar los datos del mapa (marcadores, líneas y formas con información geográfica). – RedBlueThing

1

Para ver el mapa literal en la ventana de la aplicación de escritorio, puede insertar un control de navegador que esté basado en Java y sea compatible con la aplicación Google Maps.

Ver esta pregunta para averiguar cómo incrustar un navegador en su aplicación Java:

Embedding web browser window in Java

-1

Echa un vistazo http://javamaps.blogspot.com.

+0

muy buggy hasta el momento, pero tal vez vale la pena buscar actualizaciones en el futuro. –

8

Recientemente Google lanzó la biblioteca Maps Services for Java, que brinda soporte para las API de geocodificación, direcciones, matriz de distancia, elevación y zona horaria a Java.