Если вы хотите сохранить больше, чем google maps, то статический API позволяет (например, настраивать наложения, наложенные на него слишком сложные/большие, чтобы проходить через последовательность запросов), вы можете экспортировать контейнер карты в холст, используя что-то вроде html2Canvas (http://html2canvas.hertzen.com/), затем преобразуйте его в URL-адрес данных и сделайте с ним, как хотите.
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 + '"/>');
}
});
}
Я считаю, что вам нужно установить для параметра useCORS значение true, чтобы функция могла загружать изображения из Google.
Недостатком этого подхода является то, что он может оставить вас с мегабайтом данных, сидящих на вашей странице.
Я попытался использовать этот подход для ЭКСПОРТА карты для загрузки изображения, но столкнулся с проблемами в том, как получить этот образ человеку в приятной усадьбе. Вы можете использовать гиперссылку, у которой есть атрибут href, установленный для созданного вами dataUrl, но имя файла не может быть установлено, если вы не используете атрибуты HTML, такие как download = "filename.png", что для меня было проблематично для разных браузеров. Другой подход заключается в том, чтобы отправить dataUrl на сервер для сервера, чтобы затем выложить его, как это необходимо, но загрузка большого изображения только для его загрузки снова кажется странным способом справиться с этим.
Я только что узнал, что статическая карта также может рисовать линии. Очки отправляются через URL-адрес. Например. ? HTTP: //maps.google.com/staticmap центр = 52.09259895866942,4.310945570468903 и увеличение = 17 & размер = 300x200 & MapType = спутник & ключ = 12345 & = формат JPG и путь = RGBA: 0xff0000ff, вес: 5 | 52.09254128161833,4.309733211994171 | 52.092371545864,4.309856593608856 | 52.092503379515605,4.31052178144455 | 52.092661579383304,4.310438632965088 Это все еще не решение, потому что, если у меня есть 50 очков, которые будут нарисованы в строках, я получу огромный URL-адрес, который не будет принят. Любые другие идеи? – Dante
50 очков на статической карте не так уж много. У вас есть 8K, чтобы играть по этому URL-адресу, так что держитесь! –
здесь [snashotcontrol 2.0] (http://code.google.com/p/snapshotcontrol/) – Timeless