Setting template or drawing layout to print map ol5 The 2019 Stack Overflow Developer Survey Results Are InLayer drawing orderGet Intersection when drawing lineOpenLayers-3 setting zoom so layers fit in map windowSetting Layer Visibility in OL3Layer specific popup template in openLayers 3Use map.on Click for different events (edit Drawing, Popup) on Openlayers mapHow to resize OpenLayers map before printOpenLayers 3 Print ExampleOpenlayers 4.6.5 Drawing not populating on mapPrint Openlayers WMS map with fixed scaling

What could be the right powersource for 15 seconds lifespan disposable giant chainsaw?

The phrase "to the numbers born"?

What information about me do stores get via my credit card?

Did any laptop computers have a built-in 5 1/4 inch floppy drive?

Is it safe to harvest rainwater that fell on solar panels?

How do PCB vias affect signal quality?

writing variables above the numbers in tikz picture

Why does the nucleus not repel itself?

Did Scotland spend $250,000 for the slogan "Welcome to Scotland"?

How come people say “Would of”?

How to charge AirPods to keep battery healthy?

Is it okay to consider publishing in my first year of PhD?

Can you cast a spell on someone in the Ethereal Plane, if you are on the Material Plane and have the True Seeing spell active?

Is Cinnamon a desktop environment or a window manager? (Or both?)

Why isn't the circumferential light around the M87 black hole's event horizon symmetric?

Did the UK government pay "millions and millions of dollars" to try to snag Julian Assange?

Short story: child made less intelligent and less attractive

How to add class in ko template in magento2

Why is the maximum length of OpenWrt’s root password 8 characters?

For what reasons would an animal species NOT cross a *horizontal* land bridge?

Are there any other methods to apply to solving simultaneous equations?

Why couldn't they take pictures of a closer black hole?

Pokemon Turn Based battle (Python)

How can I add encounters in the Lost Mine of Phandelver campaign without giving PCs too much XP?



Setting template or drawing layout to print map ol5



The 2019 Stack Overflow Developer Survey Results Are InLayer drawing orderGet Intersection when drawing lineOpenLayers-3 setting zoom so layers fit in map windowSetting Layer Visibility in OL3Layer specific popup template in openLayers 3Use map.on Click for different events (edit Drawing, Popup) on Openlayers mapHow to resize OpenLayers map before printOpenLayers 3 Print ExampleOpenlayers 4.6.5 Drawing not populating on mapPrint Openlayers WMS map with fixed scaling



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








0















I have created a portal which export map and then print. I just wanted to add template or draw layout in canvas for that pdf as shown in the picture below.



Here is my code:



//print map
var dims =
a0: [1189, 841],
a1: [841, 594],
a2: [594, 420],
a3: [420, 297],
a4: [297, 210],
a5: [210, 148]
;

var exportElement = document.getElementById("export-pdf");
exportElement.addEventListener(
"click",
function(e)
exportElement.disabled = true;
document.body.style.cursor = "progress";

var format = document.getElementById("format").value;
var resolution = document.getElementById("resolution").value;
var buttonLabelElement = document.getElementById("button-label");
var label = buttonLabelElement.innerText;
var scale = 4000;

var mapView = map.getView();
var mapProjection = mapView.getProjection();
var mapResolutionAtEquator = mapView.getResolution();
var viewCenter = mapView.getCenter();
var mapPointResolution = ol.proj.getPointResolution(
mapProjection,
mapResolutionAtEquator,
viewCenter
);

var dim = dims[format];
var width = Math.round((dim[0] * resolution) / 25.4);
var height = Math.round((dim[1] * resolution) / 25.4);
var size = map.getSize();
var extent = map.getView().calculateExtent(size);

var mapView = map.getView();
var currZoom = mapView.getZoom();
var mapProjection = mapView.getProjection();
var mapResolutionAtEquator = mapView.getResolution();
var viewCenter = mapView.getCenter();
var mapResolutionAtEquator = mapView.getResolution();
var mapPointResolution = ol.proj.getPointResolution(
mapProjection,
mapResolutionAtEquator,
viewCenter
);
var mapResolutionFactor = mapResolutionAtEquator / mapPointResolution;
var pdf_name = dist + "_" + tahsil + "_" + village + ".pdf";

map.once("rendercomplete", function(event)
var canvas = event.context.canvas;
showText(event.context, "left-top", dist, tahsil, village);
drawLegend(event.context, "right-bottom");
drawNorthArrow(event.context, "right-top");

WriteScaletoCanvas(event);
var data = canvas.toDataURL("image/jpeg");
var pdf = new jsPDF("landscape", undefined, format);
pdf.addImage(data, "JPEG", 0, 0, dim[0], dim[1]);
pdf.save(pdf_name);
map.setSize(size);
// map.getView().fit(extent, size);
mapView.setZoom(currZoom);
exportElement.disabled = false;
document.body.style.cursor = "auto";
);

var printPointResolution = (scale * 25.4) / (resolution * 1000); // edit1: corrected
var printResolutionAtEquator = mapResolutionFactor * printPointResolution;
var printZoom = mapView.getZoomForResolution(printResolutionAtEquator);

map.setSize([width, height]);
// mapView.fit(extent, (map.getSize()));
mapView.setZoom(printZoom);
,
false
);


For example:



enter image description here



How to create this layout pdf?










share|improve this question
























  • Take a look at the ol-ext source code viglino.github.io/ol-ext There are controls for title, scale lines, attributions, graticule borders, compass, etc. on the canvas. Obviously not exactly what you want but you could use the same technique to produce your own.

    – Mike
    Apr 6 at 10:05












  • thanks Mike but i did not see scaling option like 1:4000 and so on for printing map.

    – sanju verma
    Apr 6 at 10:23












  • I don't think there is any other way than creating svg template and than drawing it to canvas before export to pdf, the same way you are now drawing legend, title, scale and compass.

    – TomazicM
    Apr 7 at 17:23











  • is it possible to set everything in template according to scale and then give print-preview option then print map in desired paper size as A0

    – sanju verma
    Apr 8 at 7:00

















0















I have created a portal which export map and then print. I just wanted to add template or draw layout in canvas for that pdf as shown in the picture below.



Here is my code:



//print map
var dims =
a0: [1189, 841],
a1: [841, 594],
a2: [594, 420],
a3: [420, 297],
a4: [297, 210],
a5: [210, 148]
;

var exportElement = document.getElementById("export-pdf");
exportElement.addEventListener(
"click",
function(e)
exportElement.disabled = true;
document.body.style.cursor = "progress";

var format = document.getElementById("format").value;
var resolution = document.getElementById("resolution").value;
var buttonLabelElement = document.getElementById("button-label");
var label = buttonLabelElement.innerText;
var scale = 4000;

var mapView = map.getView();
var mapProjection = mapView.getProjection();
var mapResolutionAtEquator = mapView.getResolution();
var viewCenter = mapView.getCenter();
var mapPointResolution = ol.proj.getPointResolution(
mapProjection,
mapResolutionAtEquator,
viewCenter
);

var dim = dims[format];
var width = Math.round((dim[0] * resolution) / 25.4);
var height = Math.round((dim[1] * resolution) / 25.4);
var size = map.getSize();
var extent = map.getView().calculateExtent(size);

var mapView = map.getView();
var currZoom = mapView.getZoom();
var mapProjection = mapView.getProjection();
var mapResolutionAtEquator = mapView.getResolution();
var viewCenter = mapView.getCenter();
var mapResolutionAtEquator = mapView.getResolution();
var mapPointResolution = ol.proj.getPointResolution(
mapProjection,
mapResolutionAtEquator,
viewCenter
);
var mapResolutionFactor = mapResolutionAtEquator / mapPointResolution;
var pdf_name = dist + "_" + tahsil + "_" + village + ".pdf";

map.once("rendercomplete", function(event)
var canvas = event.context.canvas;
showText(event.context, "left-top", dist, tahsil, village);
drawLegend(event.context, "right-bottom");
drawNorthArrow(event.context, "right-top");

WriteScaletoCanvas(event);
var data = canvas.toDataURL("image/jpeg");
var pdf = new jsPDF("landscape", undefined, format);
pdf.addImage(data, "JPEG", 0, 0, dim[0], dim[1]);
pdf.save(pdf_name);
map.setSize(size);
// map.getView().fit(extent, size);
mapView.setZoom(currZoom);
exportElement.disabled = false;
document.body.style.cursor = "auto";
);

var printPointResolution = (scale * 25.4) / (resolution * 1000); // edit1: corrected
var printResolutionAtEquator = mapResolutionFactor * printPointResolution;
var printZoom = mapView.getZoomForResolution(printResolutionAtEquator);

map.setSize([width, height]);
// mapView.fit(extent, (map.getSize()));
mapView.setZoom(printZoom);
,
false
);


For example:



enter image description here



How to create this layout pdf?










share|improve this question
























  • Take a look at the ol-ext source code viglino.github.io/ol-ext There are controls for title, scale lines, attributions, graticule borders, compass, etc. on the canvas. Obviously not exactly what you want but you could use the same technique to produce your own.

    – Mike
    Apr 6 at 10:05












  • thanks Mike but i did not see scaling option like 1:4000 and so on for printing map.

    – sanju verma
    Apr 6 at 10:23












  • I don't think there is any other way than creating svg template and than drawing it to canvas before export to pdf, the same way you are now drawing legend, title, scale and compass.

    – TomazicM
    Apr 7 at 17:23











  • is it possible to set everything in template according to scale and then give print-preview option then print map in desired paper size as A0

    – sanju verma
    Apr 8 at 7:00













0












0








0








I have created a portal which export map and then print. I just wanted to add template or draw layout in canvas for that pdf as shown in the picture below.



Here is my code:



//print map
var dims =
a0: [1189, 841],
a1: [841, 594],
a2: [594, 420],
a3: [420, 297],
a4: [297, 210],
a5: [210, 148]
;

var exportElement = document.getElementById("export-pdf");
exportElement.addEventListener(
"click",
function(e)
exportElement.disabled = true;
document.body.style.cursor = "progress";

var format = document.getElementById("format").value;
var resolution = document.getElementById("resolution").value;
var buttonLabelElement = document.getElementById("button-label");
var label = buttonLabelElement.innerText;
var scale = 4000;

var mapView = map.getView();
var mapProjection = mapView.getProjection();
var mapResolutionAtEquator = mapView.getResolution();
var viewCenter = mapView.getCenter();
var mapPointResolution = ol.proj.getPointResolution(
mapProjection,
mapResolutionAtEquator,
viewCenter
);

var dim = dims[format];
var width = Math.round((dim[0] * resolution) / 25.4);
var height = Math.round((dim[1] * resolution) / 25.4);
var size = map.getSize();
var extent = map.getView().calculateExtent(size);

var mapView = map.getView();
var currZoom = mapView.getZoom();
var mapProjection = mapView.getProjection();
var mapResolutionAtEquator = mapView.getResolution();
var viewCenter = mapView.getCenter();
var mapResolutionAtEquator = mapView.getResolution();
var mapPointResolution = ol.proj.getPointResolution(
mapProjection,
mapResolutionAtEquator,
viewCenter
);
var mapResolutionFactor = mapResolutionAtEquator / mapPointResolution;
var pdf_name = dist + "_" + tahsil + "_" + village + ".pdf";

map.once("rendercomplete", function(event)
var canvas = event.context.canvas;
showText(event.context, "left-top", dist, tahsil, village);
drawLegend(event.context, "right-bottom");
drawNorthArrow(event.context, "right-top");

WriteScaletoCanvas(event);
var data = canvas.toDataURL("image/jpeg");
var pdf = new jsPDF("landscape", undefined, format);
pdf.addImage(data, "JPEG", 0, 0, dim[0], dim[1]);
pdf.save(pdf_name);
map.setSize(size);
// map.getView().fit(extent, size);
mapView.setZoom(currZoom);
exportElement.disabled = false;
document.body.style.cursor = "auto";
);

var printPointResolution = (scale * 25.4) / (resolution * 1000); // edit1: corrected
var printResolutionAtEquator = mapResolutionFactor * printPointResolution;
var printZoom = mapView.getZoomForResolution(printResolutionAtEquator);

map.setSize([width, height]);
// mapView.fit(extent, (map.getSize()));
mapView.setZoom(printZoom);
,
false
);


For example:



enter image description here



How to create this layout pdf?










share|improve this question
















I have created a portal which export map and then print. I just wanted to add template or draw layout in canvas for that pdf as shown in the picture below.



Here is my code:



//print map
var dims =
a0: [1189, 841],
a1: [841, 594],
a2: [594, 420],
a3: [420, 297],
a4: [297, 210],
a5: [210, 148]
;

var exportElement = document.getElementById("export-pdf");
exportElement.addEventListener(
"click",
function(e)
exportElement.disabled = true;
document.body.style.cursor = "progress";

var format = document.getElementById("format").value;
var resolution = document.getElementById("resolution").value;
var buttonLabelElement = document.getElementById("button-label");
var label = buttonLabelElement.innerText;
var scale = 4000;

var mapView = map.getView();
var mapProjection = mapView.getProjection();
var mapResolutionAtEquator = mapView.getResolution();
var viewCenter = mapView.getCenter();
var mapPointResolution = ol.proj.getPointResolution(
mapProjection,
mapResolutionAtEquator,
viewCenter
);

var dim = dims[format];
var width = Math.round((dim[0] * resolution) / 25.4);
var height = Math.round((dim[1] * resolution) / 25.4);
var size = map.getSize();
var extent = map.getView().calculateExtent(size);

var mapView = map.getView();
var currZoom = mapView.getZoom();
var mapProjection = mapView.getProjection();
var mapResolutionAtEquator = mapView.getResolution();
var viewCenter = mapView.getCenter();
var mapResolutionAtEquator = mapView.getResolution();
var mapPointResolution = ol.proj.getPointResolution(
mapProjection,
mapResolutionAtEquator,
viewCenter
);
var mapResolutionFactor = mapResolutionAtEquator / mapPointResolution;
var pdf_name = dist + "_" + tahsil + "_" + village + ".pdf";

map.once("rendercomplete", function(event)
var canvas = event.context.canvas;
showText(event.context, "left-top", dist, tahsil, village);
drawLegend(event.context, "right-bottom");
drawNorthArrow(event.context, "right-top");

WriteScaletoCanvas(event);
var data = canvas.toDataURL("image/jpeg");
var pdf = new jsPDF("landscape", undefined, format);
pdf.addImage(data, "JPEG", 0, 0, dim[0], dim[1]);
pdf.save(pdf_name);
map.setSize(size);
// map.getView().fit(extent, size);
mapView.setZoom(currZoom);
exportElement.disabled = false;
document.body.style.cursor = "auto";
);

var printPointResolution = (scale * 25.4) / (resolution * 1000); // edit1: corrected
var printResolutionAtEquator = mapResolutionFactor * printPointResolution;
var printZoom = mapView.getZoomForResolution(printResolutionAtEquator);

map.setSize([width, height]);
// mapView.fit(extent, (map.getSize()));
mapView.setZoom(printZoom);
,
false
);


For example:



enter image description here



How to create this layout pdf?







openlayers






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Apr 6 at 13:53









Ian Turton

50.3k548118




50.3k548118










asked Apr 6 at 9:24









sanju vermasanju verma

408




408












  • Take a look at the ol-ext source code viglino.github.io/ol-ext There are controls for title, scale lines, attributions, graticule borders, compass, etc. on the canvas. Obviously not exactly what you want but you could use the same technique to produce your own.

    – Mike
    Apr 6 at 10:05












  • thanks Mike but i did not see scaling option like 1:4000 and so on for printing map.

    – sanju verma
    Apr 6 at 10:23












  • I don't think there is any other way than creating svg template and than drawing it to canvas before export to pdf, the same way you are now drawing legend, title, scale and compass.

    – TomazicM
    Apr 7 at 17:23











  • is it possible to set everything in template according to scale and then give print-preview option then print map in desired paper size as A0

    – sanju verma
    Apr 8 at 7:00

















  • Take a look at the ol-ext source code viglino.github.io/ol-ext There are controls for title, scale lines, attributions, graticule borders, compass, etc. on the canvas. Obviously not exactly what you want but you could use the same technique to produce your own.

    – Mike
    Apr 6 at 10:05












  • thanks Mike but i did not see scaling option like 1:4000 and so on for printing map.

    – sanju verma
    Apr 6 at 10:23












  • I don't think there is any other way than creating svg template and than drawing it to canvas before export to pdf, the same way you are now drawing legend, title, scale and compass.

    – TomazicM
    Apr 7 at 17:23











  • is it possible to set everything in template according to scale and then give print-preview option then print map in desired paper size as A0

    – sanju verma
    Apr 8 at 7:00
















Take a look at the ol-ext source code viglino.github.io/ol-ext There are controls for title, scale lines, attributions, graticule borders, compass, etc. on the canvas. Obviously not exactly what you want but you could use the same technique to produce your own.

– Mike
Apr 6 at 10:05






Take a look at the ol-ext source code viglino.github.io/ol-ext There are controls for title, scale lines, attributions, graticule borders, compass, etc. on the canvas. Obviously not exactly what you want but you could use the same technique to produce your own.

– Mike
Apr 6 at 10:05














thanks Mike but i did not see scaling option like 1:4000 and so on for printing map.

– sanju verma
Apr 6 at 10:23






thanks Mike but i did not see scaling option like 1:4000 and so on for printing map.

– sanju verma
Apr 6 at 10:23














I don't think there is any other way than creating svg template and than drawing it to canvas before export to pdf, the same way you are now drawing legend, title, scale and compass.

– TomazicM
Apr 7 at 17:23





I don't think there is any other way than creating svg template and than drawing it to canvas before export to pdf, the same way you are now drawing legend, title, scale and compass.

– TomazicM
Apr 7 at 17:23













is it possible to set everything in template according to scale and then give print-preview option then print map in desired paper size as A0

– sanju verma
Apr 8 at 7:00





is it possible to set everything in template according to scale and then give print-preview option then print map in desired paper size as A0

– sanju verma
Apr 8 at 7:00










0






active

oldest

votes












Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "79"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f317968%2fsetting-template-or-drawing-layout-to-print-map-ol5%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes















draft saved

draft discarded
















































Thanks for contributing an answer to Geographic Information Systems Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f317968%2fsetting-template-or-drawing-layout-to-print-map-ol5%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

រឿង រ៉ូមេអូ និង ហ្ស៊ុយលីយេ សង្ខេបរឿង តួអង្គ បញ្ជីណែនាំ

Crop image to path created in TikZ? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Crop an inserted image?TikZ pictures does not appear in posterImage behind and beyond crop marks?Tikz picture as large as possible on A4 PageTransparency vs image compression dilemmaHow to crop background from image automatically?Image does not cropTikzexternal capturing crop marks when externalizing pgfplots?How to include image path that contains a dollar signCrop image with left size given

Romeo and Juliet ContentsCharactersSynopsisSourcesDate and textThemes and motifsCriticism and interpretationLegacyScene by sceneSee alsoNotes and referencesSourcesExternal linksNavigation menu"Consumer Price Index (estimate) 1800–"10.2307/28710160037-3222287101610.1093/res/II.5.31910.2307/45967845967810.2307/2869925286992510.1525/jams.1982.35.3.03a00050"Dada Masilo: South African dancer who breaks the rules"10.1093/res/os-XV.57.1610.2307/28680942868094"Sweet Sorrow: Mann-Korman's Romeo and Juliet Closes Sept. 5 at MN's Ordway"the original10.2307/45957745957710.1017/CCOL0521570476.009"Ram Leela box office collections hit massive Rs 100 crore, pulverises prediction"Archived"Broadway Revival of Romeo and Juliet, Starring Orlando Bloom and Condola Rashad, Will Close Dec. 8"Archived10.1075/jhp.7.1.04hon"Wherefore art thou, Romeo? To make us laugh at Navy Pier"the original10.1093/gmo/9781561592630.article.O006772"Ram-leela Review Roundup: Critics Hail Film as Best Adaptation of Romeo and Juliet"Archived10.2307/31946310047-77293194631"Romeo and Juliet get Twitter treatment""Juliet's Nurse by Lois Leveen""Romeo and Juliet: Orlando Bloom's Broadway Debut Released in Theaters for Valentine's Day"Archived"Romeo and Juliet Has No Balcony"10.1093/gmo/9781561592630.article.O00778110.2307/2867423286742310.1076/enst.82.2.115.959510.1080/00138380601042675"A plague o' both your houses: error in GCSE exam paper forces apology""Juliet of the Five O'Clock Shadow, and Other Wonders"10.2307/33912430027-4321339124310.2307/28487440038-7134284874410.2307/29123140149-661129123144728341M"Weekender Guide: Shakespeare on The Drive""balcony"UK public library membership"romeo"UK public library membership10.1017/CCOL9780521844291"Post-Zionist Critique on Israel and the Palestinians Part III: Popular Culture"10.2307/25379071533-86140377-919X2537907"Capulets and Montagues: UK exam board admit mixing names up in Romeo and Juliet paper"Istoria Novellamente Ritrovata di Due Nobili Amanti2027/mdp.390150822329610820-750X"GCSE exam error: Board accidentally rewrites Shakespeare"10.2307/29176390149-66112917639"Exam board apologises after error in English GCSE paper which confused characters in Shakespeare's Romeo and Juliet""From Mariotto and Ganozza to Romeo and Guilietta: Metamorphoses of a Renaissance Tale"10.2307/37323537323510.2307/2867455286745510.2307/28678912867891"10 Questions for Taylor Swift"10.2307/28680922868092"Haymarket Theatre""The Zeffirelli Way: Revealing Talk by Florentine Director""Michael Smuin: 1938-2007 / Prolific dance director had showy career"The Life and Art of Edwin BoothRomeo and JulietRomeo and JulietRomeo and JulietRomeo and JulietEasy Read Romeo and JulietRomeo and Julieteeecb12003684p(data)4099369-3n8211610759dbe00d-a9e2-41a3-b2c1-977dd692899302814385X313670221313670221