Imagen de Google Maps?

¿Hay alguna forma de capturar la imagen de un mapa de Google? No puedo usar el mapa estático porque tengo mis propias polilíneas en el mapa y las quiero en la “captura de pantalla”.

Básicamente, quiero que un usuario navegue por el mapa, agregue algunas polilíneas, y cuando hace clic en Guardar, guardo las líneas, las coordenadas, el zoom, pero también me gustaría tener una imagen para presentar como una miniatura en las listas.

Tks por adelantado.

Masashi Katsumta ha creado un control de instantáneas que toma una instantánea de Google Maps con una ruta y crea una imagen a partir de ella.

Usar el contenido de Google Maps fuera del Servicio es una violación de los Términos de uso de la API de Google Maps, por lo tanto, aunque existen técnicas para crear las instantáneas, Google no le da permiso para hacerlo.

Para lograr legalmente su funcionalidad prevista, debe utilizar mapas estáticos (posiblemente con contenido reducido, especialmente si el usuario usa MSIE donde la longitud máxima de la URL es bastante pequeña) o pequeños Google Maps reales.

Parece que todavía no tengo el privilegio de agregar o editar comentarios a la pregunta, así que mencionaré aquí que el límite de URL en al menos algunas versiones de MSIE compatibles con Maps es de 2083 caracteres, no de 8k como en la mayoría de los otros navegadores. .

Si desea guardar más de los mapas de Google que la API estática permite (como las superposiciones personalizadas dibujadas en él demasiado complejas / grandes para pasar por la cadena de consulta), puede exportar el contenedor de mapas a un canvas usando algo como html2Canvas ( http: // html2canvas .hertzen.com / ), luego conviértalo en una URL de datos y hazlo como quieras.

function saveMapToDataUrl() { var element = $("#mapDiv"); html2canvas(element, { useCORS: true, onrendered: function(canvas) { var dataUrl= canvas.toDataURL("image/png"); // DO SOMETHING WITH THE DATAURL // Eg. write it to the page document.write(''); } }); } 

Creo que debes establecer la opción useCORS en true para permitir que la función descargue imágenes de Google.

La desventaja de este enfoque es que podría dejarle cerca de un megabyte de datos en su página.

Intenté utilizar este enfoque para EXPORTAR un mapa a una imagen para descargar, pero me he encontrado con problemas para conseguir que esta imagen llegue a la persona de una manera agradable. Podría usar un hipervínculo que tenga su atributo href establecido en el dataUrl que creó, pero el nombre del archivo no se puede establecer a menos que use atributos HTML como download = “filename.png”, lo que ha sido problemático para diferentes navegadores para mí. Otro enfoque es publicar el dataUrl en el servidor para que el servidor lo distribuya como lo necesita, pero cargar una imagen grande solo para descargarlo nuevamente parece una forma extraña de manejar esto.

Puede usar ThinkGeo Map Suite. Son compatibles con la representación de imágenes de los servicios Google, Yahoo o MS Map, mientras que usted puede dibujar sus líneas de polietileno, etc. en ese mapa …

Trabajar con Map Suite V3 es pan comido

Google no proporciona esta funcionalidad con su API. Sin embargo, hay algunas secuencias de comandos para raspar esta información de la página. El siguiente sitio tiene un script PHP que lo hace:

http://groups.google.co.uk/group/Google-Maps-API/browse_frm/thread/e9696444518ac079?hl=en

Ver las publicaciones hacia el final.

No se puede hacer con la API de mapas, como se mencionó anteriormente, pero Yahoo ofrece una y es bastante fácil de usar.

Yahoo: Map Image API