Se si desidera salvare più di google maps API statico permette (come ad esempio le sovrapposizioni personalizzati disegnati su di esso troppo complessa/grandi per passare attraverso la querystring), si potrebbe esportare il contenitore della mappa per una tela utilizzando qualcosa di simile html2Canvas (http://html2canvas.hertzen.com/), quindi convertirlo in un URL di dati e utilizzarlo come si desidera.
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 + '"/>');
}
});
}
Credo che è necessario impostare l'opzione useCORS a true al fine di consentire la funzione di scaricare le immagini da Google.
Lo svantaggio di questo approccio è che potrebbe lasciarti con circa un megabyte di dati seduti sulla tua pagina.
Ho provato a utilizzare questo approccio per esportare una mappa in un'immagine da scaricare, ma ho incontrato dei problemi su come ottenere questa immagine alla persona in un bel maniero. Puoi usare un collegamento ipertestuale che ha il suo attributo href impostato sul dataUrl che hai creato, ma il nome del file non può essere impostato a meno che non usi attributi HTML come download = "nomefile.png", che per me è stato problematico su diversi browser. Un altro approccio è quello di inviare il dataUrl al server affinché il server risponda come necessario, ma caricare un'immagine di grandi dimensioni solo per scaricarlo di nuovo sembra un modo strano per gestirlo.
Ho appena scoperto che la mappa statica può anche disegnare linee. I punti sono inviati attraverso l'URL. Per esempio. ? http: //maps.google.com/staticmap centro = 52.09259895866942,4.310945570468903 & zoom = 17 & size = 300x200 & maptype = satellite & key = 12345 & format = jpg & path = RGBA: 0xff0000ff, peso: 5 | 52.09254128161833,4.309733211994171 | 52.092371545864,4.309856593608856 | 52.092503379515605,4.31052178144455 | 52.092661579383304,4.310438632965088 Questo non è ancora una soluzione perché se ho 50 punti da tracciare in linee otterrò un URL enorme che non sarà accettato. Altre idee? – Dante
50 punti su una mappa statica non sono molti. Hai 8K con cui giocare su quell'URL, quindi impazzisci! –
ecco [snashotcontrol 2.0] (http://code.google.com/p/snapshotcontrol/) – Timeless