当我打印谷歌地图时;它不打印图标;如何打印完整的谷歌地图 我正在使用google maps api v3 for javascript
答案 0 :(得分:0)
还有其他一些问题可以解决这个问题: How to print Google Map markers
简而言之,Google Maps Javascript API无法正确或完全打印叠加层(标记,线条)。您可以使用Google Maps Static API,但您将受限于在地图上绘制的叠加层数量。然而,这是获得可靠打印的最佳方式。
长,标记有'gmnoprint'类,它禁止它们出现在打印的渲染上。您可以遍历标记并删除此类,这样就可以在页面上打印它们。据我所知,这对方向线不起作用。
答案 1 :(得分:0)
尝试打印图标和路线很多天,所以最后我做到了!!!!!!!! 我发现了一个js script that convert html to canvas,我认为这将是解决方案,但不幸的是它根本没有。
如果发现,当我使用它并说到浏览器打印页面最后显示它!但画布再次没有显示图标¿...?
所以我只是在加载时执行脚本并将结果画布附加到地图后面的div中(如果你把display:none不起作用!)。抱歉我的英文:) 这里有点代码:
<div id="imprimir">
<h1><?php echo $direccion;?></h1>
<div id="distancia"></div>
<div id="map-canvas" style="margin: 0;padding: 0; height: 550px;z-index:10"></div>
<div id="captura" style="position:absolute;top:100px;left:50px;"></div>
</div>
//------------ ...
Google Map code here
//------------ ...
<script>
html2canvas($("#imprimir"), {
onrendered: function(canvas) {
$("#captura").html(canvas);
}
});
</script>
好吧,我希望这能帮到你!!!
答案 2 :(得分:0)
$("#btnPrint").click(function () {
var contents = $("#map_canvas").html();
var frame1 = $('<iframe />');
frame1[0].name = "frame1";
frame1.css({ "position": "absolute", "top": "-1000000px" });
$("body").append(frame1);
var frameDoc = frame1[0].contentWindow ? frame1[0].contentWindow : frame1[0].contentDocument.document ? frame1[0].contentDocument.document : frame1[0].contentDocument;
frameDoc.document.open();
//Create a new HTML document.
frameDoc.document.write('<html><head><title>DIV Contents</title>');
frameDoc.document.write('</head><body>');
//Append the external CSS file.
frameDoc.document.write('<link href="style.css" rel="stylesheet" type="text/css" />');
//Append the DIV contents.
frameDoc.document.write(contents);
frameDoc.document.write('</body></html>');
frameDoc.document.close();
setTimeout(function () {
window.frames["frame1"].focus();
window.frames["frame1"].print();
frame1.remove();
}, 500);
});