///
///
function printMapControl(map) {
"use strict";
if (!isCanvasSupported()) {
return null;
}
var controlDiv = printMapButton("Print", "printMap");
google.maps.event.addDomListener(controlDiv, "click", function () {
printMap(map);
});
return controlDiv;
}
function isCanvasSupported() {
"use strict";
var elem = document.createElement("canvas");
return !!(elem.getContext && elem.getContext("2d"));
}
function printMap(map) {
"use strict";
var mapControlVisible = map.mapTypeControl;
var zoomVisible = map.zoomControl;
var streetViewVisible = map.streetViewControl;
var panVisible = map.panControl;
var fullscreenVisible = map.fullscreenControl;
map.setOptions({
mapTypeControl: false,
zoomControl: false,
streetViewControl: false,
panControl: false,
fullscreenControl: false
});
map.controls.forEach(function (array) {
array.forEach(function (elem) {
$(elem).hide();
});
});
clearMarkerClusterer();
var showControls = function () {
map.setOptions({
mapTypeControl: mapControlVisible,
zoomControl: zoomVisible,
streetViewControl: streetViewVisible,
panControl: panVisible,
fullscreenControl: fullscreenVisible
});
map.controls.forEach(function (array) {
array.forEach(function (elem) {
$(elem).show();
});
});
};
var popUpAndPrint = function () {
try {
// var dataUrl = [];
// var container = map.getDiv();
// $(container)
// .find("canvas")
// .filter(function () {
// dataUrl.push(this.toDataURL("image/png"));
// });
// var clone = $(container).clone();
// var width = container.clientWidth;
// var height = container.clientHeight;
// $(clone)
// .find("canvas")
// .each(function (i, item) {
// $(item)
// .replaceWith($("
")
// .attr("src", dataUrl[i]))
// .css("position", "absolute")
// .css("left", "0")
// .css("top", "0")
// .css("width", width + "px")
// .css("height", height + "px");
// });
// var printWindow = window.open("", "PrintMap", "width=" + width + ",height=" + height);
// if (printWindow == null) {
// throw new Error("Unable to display the print dialog, you might need to allow popups on this site");
// }
// printWindow.document.writeln($(clone).html());
// printWindow.document.close();
// printWindow.focus();
// printWindow.print();
// printWindow.close();
const $body = $('body');
const $mapContainer = $('.map');
const $mapContainerParent = $mapContainer.parent();
const $printContainer = $('
');
$printContainer
.height($mapContainer.height())
.append($mapContainer)
.prependTo($body);
const $content = $body
.children()
.not($printContainer)
.not('script')
.detach();
/**
* Needed for those who use Bootstrap 3.x, because some of
* its `@media print` styles ain't play nicely when printing.
*/
const $patchedStyle = $('