如何使用所有图层/标记打印Google地图?
使用$('#map').html()
并将内容放在新窗口中不起作用。它只显示地图基础层。例如,以下代码不起作用。
function PrintElem(elem)
{
Popup($(elem).html());
}
function Popup(data)
{
var mywindow = window.open('', 'my div', 'height=400,width=600');
mywindow.document.write('<html><head><title>my div</title>');
/*optional stylesheet*/ //mywindow.document.write('<link rel="stylesheet" href="main.css" type="text/css" />');
mywindow.document.write('</head><body >');
mywindow.document.write(data);
mywindow.document.write('</body></html>');
mywindow.document.close(); // necessary for IE >= 10
mywindow.focus(); // necessary for IE >= 10
mywindow.print();
mywindow.close();
return true;
}
将地图贴在横向/纵向上进行打印也很不错。
答案 0 :(得分:0)
我最终只是在打印优化的弹出窗口中重新创建地图。
打开POPUP:
mapData = {
data:someMapData(),
};
window.open('print.html', 'window1', 'height=750,width=1000');
来自POPUP,访问数据:
var data = window.opener.mapData;
在打印窗口中,我根据打印方向(横向/纵向)调整地图大小。
if(type=='portrait') {
$('#wrap').css('height','780pt').css('width', '600pt');
}
if(type=='landscape') {
$('#wrap').css('height','660pt').css('width', '900pt');
}
if(type=='turnbyturn') {
$('#wrap').css('height','780pt').css('width', '600pt');
}
它打印得很好,而且就我的目的来说,它比试图从应用程序本身打印更好。您可以轻松获取路线数据,折线,点等,并在地图上重绘。