Comments (5)
Hello,
- What do you mean, in scale? - Do you want to use some plugin to show scale or ... ?
- Yes, you can print a map from JS. Will add a needed section into documentation shortly. Or please explain your use case in more details.
Regards
Igor
from leaflet.browser.print.
Hi Igor,
- Scale mean ex. 1:25000, 1cm on print is 250mt on ground
- I would use it in my site (http://mygis.caivola.it/), as you can see I have a toolbar with main commands,
With this html buttons, (by js), I call leaflet commands
Thank You
Marco
from leaflet.browser.print.
I see,
You can call print function of plugin itself. it will allow you to print page
plugin.print(pageOrientation, bounds);
The only problem, you still need this plugin on the map (but you can hide it via css, like .leaflet-control-browser-print{ display: none; }
);
Where - pageOrientation is 'Landscape' or 'Portrait'
And about bounds - you need to calculate bounds on your own for now, to print with a scale. Just calculate needed zoom lvl for your scale (please check this article: https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Resolution_and_Scale) and add 1 zoom lvl for printing, due to: Issue #31
So if you need zoom lvl 14, please zoom map on your own to lvl 15 and call the print function with a valid bound calculated for zoom lvl 14.
Or if it's too complicated please wait...., few weeks while I will have time and manage this. :)
Regards,
Igor
from leaflet.browser.print.
Hello,
I've the same need as Marco. As you explain, it isn't very difficult calculate zoom but for bounds calculation, I need the final print size with margin calculation included. I've readed some like this:
size.Width = Math.floor(calculateMargin(size.Width)) + 'mm';
size.Height = Math.floor(calculateMargin(size.Height)) + 'mm';
For me, the logical sequence may be like that:
I supose that I've a mode, scale and paper size fixed (ie. Landscape, 1:5000, A4)
First, I must get the effective paper size (maybe from getSize function) in mm., then multiply by 5 (5000/1000: mm. to m.).
At this moment I have my rectangle's size in world units (m.).
I can translate to the view's center, calculate bounds in LatLon, then the optimal zoom (for best quality printing) and call the print function.
But ..., I've the feeling that it will not work as I expect.
Maybe it would better getting PrePrint Event.
Thanks,
Javier
from leaflet.browser.print.
Hello,
You are pretty right about expected workflow, and steps that need to be done :)
But I hope that you understand what Mercado projection will do with scaling? And all these zoom levels :) It's pretty impossible to print a map in exact scale...
Igor
from leaflet.browser.print.
Related Issues (20)
- Error in documentation
- resize button heigth HOT 1
- work with React + TypeScript HOT 1
- Add dynamic contents(add new page if contents are huge), circle not printing. HOT 1
- ImageOverlay dont work
- JS error when manualMode is true HOT 1
- Printing two Leaflet instances (One only visible in printing) HOT 1
- Text of Leaflet Geoman Textlayer is not displayed HOT 2
- Offset with leaflet map position HOT 1
- Legend disappear when print ends HOT 1
- When defining custom printFunction, document.querySelector('.grid-print-container') does not include the Leaflet layers, only the container HOT 1
- package.json missing a main key HOT 2
- [Geotiff] Geotiff file on print HOT 5
- Fitting an Image as Watermark on PrintPage HOT 2
- Map breaks into two pages in smaller screens HOT 6
- Esri Vector Tile Printing? HOT 1
- Map Moves After Print Action HOT 3
- Problems with register L.nonTiledLayer.wms HOT 2
- Print additional content section on another page HOT 1
- Sometimes map overlay display blank before going into print mode. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from leaflet.browser.print.