Si desea guardar más de API de Google Maps estática permite (como superposiciones personalizadas dibujados en demasiado complejo/grande para pasar a través de la cadena de consulta), puede exportar el contenedor mapa a un lienzo utilizando algo así 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('<img src="' + dataUrl + '"/>');
}
});
}
Creo que es necesario establecer la opción useCORS a cierto con el fin de permitir que la función para descargar imágenes de Google.
La desventaja de este enfoque es que podría dejarle cerca de un megabyte de datos en su página.
He intentado utilizar este enfoque para EXPORTAR un mapa a una imagen para descargar, pero me he encontrado con problemas para obtener esta imagen a la persona en una casa señorial. 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 cual ha sido problemático en 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.
Acabo de descubrir que el mapa estático también puede dibujar líneas. Los puntos se envían a través de la URL. P.ej. ? http: //maps.google.com/staticmap centro = 52.09259895866942,4.310945570468903 y zoom = 17 & size = 300x200 y MapType = satélite & key = 12345 y formato jpg y = path = RGBA: 0xff0000ff, peso: 5 | 52.09254128161833,4.309733211994171 | 52.092371545864,4.309856593608856 | 52.092503379515605,4.31052178144455 | 52.092661579383304,4.310438632965088 Esto todavía no es una solución porque si tengo 50 puntos para dibujar en líneas obtendré una gran URL que no será aceptada. ¿Alguna otra idea? – Dante
50 puntos en un mapa estático no son muchos. Tienes 8K para jugar en esa URL, ¡así que vete loco! –
aquí está el [snashotcontrol 2.0] (http://code.google.com/p/snapshotcontrol/) – Timeless