Giter VIP home page Giter VIP logo

Comments (5)

Igor-Vladyka avatar Igor-Vladyka commented on May 29, 2024

Hello,

  1. What do you mean, in scale? - Do you want to use some plugin to show scale or ... ?
  2. 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.

mtugnoli avatar mtugnoli commented on May 29, 2024

Hi Igor,

  1. Scale mean ex. 1:25000, 1cm on print is 250mt on ground
  2. 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.

Igor-Vladyka avatar Igor-Vladyka commented on May 29, 2024

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.

jrufas avatar jrufas commented on May 29, 2024

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.

Igor-Vladyka avatar Igor-Vladyka commented on May 29, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.