I'm using QGIS 3.4.1, and I used Openlayers plugin to download several maps of my interest, and downloaded SRTM data and added as a raster layer. They are all aligned based on same CRS reference. Now, there are multiple different layers of maps and one raster layer in my project.

Here is the list of what I wish to do:

  1. I wish to print the square map of exactly 61.440km x 61.440km (61440m x 61440m) area of my choice.
  2. While printing, I wish to have 2048 pixel x 2048 pixel quality, this will give the map 1 pixel per 30m. Then print to 24bit bmp format file.
  3. I wish to get the 4 longitude / latitude coordinates for the 4 corner point of square map above.

Following is my question:

A. Regarding question 1&2, I'm trying to use "print composer". How can I only print 61.440km x 61.440km area of my interest from print composer?

I know that I can set "Item Properties" => "Extents", and set X min/max, Y min/max coordinate, but I don't know how to set those extent numbers to become 61.44km.

What are the formula or equation?

Or, are there any other good methods instead of using "Extents"?

B. What DPI setting should be chosen for 1 pixel per 30m?

  • 3
    Welcome to GIS SE. Please refine this post to include a single, focused question. – Aaron Nov 26 '18 at 19:01
  • 1
    @Aaron I removed 3 questions, and now this post has 2 related questions. Is this enough? – exsonic01 Nov 26 '18 at 19:05
  • A good cross-check on whether you are now asking a single question is whether your question contains more than one question mark in its body. – PolyGeo Nov 26 '18 at 19:21
  • @PolyGeo I will keep in mind that next time, thank you. – exsonic01 Nov 26 '18 at 19:46

Put your project in a coordinate reference system that uses meters as its units. Set your X min and Y min to where you want the lower left corner of the map. Add 61440m to the min values, and make those your X max and Y max values, so

X max = X min + 61440
Y max = Y min + 61440

The question of DPI setting is just basic math, it's not special to GIS. Your map width is 61440 meters. Divide by the 30 m per pixel to get the total width in pixels.

61440 m / (30 m/px) =  2048 px

DPI is dots per inch. You want a DPI setting that results in a 1:1 ratio between dots and pixels. Calculate how many pixels for inch your map has, and use that value for DPI. If your map is 10 inches wide and 2048 pixels wide, you have

2048 px / 10 in = 204.8 px/in

If it requires an integer, choose a map width that divides evenly into 2048 pixels, eg 8 inches wide.

2048 px / 8 in = 256 px/in

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.