Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Print map with own layer

Given a big city (square is about 800 km^2) with some layer over it. This layer may contain multicolor features such as:

  • lines
  • points
  • text

Number of features is about 1000.

Map resource - Google Maps or Openstreetmap (or maybe something else?).

My aim is to print such map on a paper with size (about) 5x5 meters. Also this document has to be high-resolution - on this paper I want to see buildings with their numbers, streets with captions and so on.

What is the best way to generate such printable file (image, document, etc)?


Here are some possible solutions that I found:

  • I know OpenLayers API so I can draw the layer over Google Maps or Openstreetmap. But how to convert it to printable format?

  • I find out that there's export feature on Openstreetmap. But using this feature I can't export my own layer and also it won't be high-resolution.

  • Google Maps has similar feature. Using it I can create own layer. But if I have 1000 features than URL will be very big, so server won't load it. Also this map won't be high-resoultion.


Thanks for any help.

like image 881
ArtemStorozhuk Avatar asked Jun 05 '12 17:06

ArtemStorozhuk


Video Answer


1 Answers

You want to produce a drawing that's 5 meters by 5 meters of a city that's 40 kilometers by 40 kilometers. That's a scale of 1 / 8000.

Looking at the Open Street Map tile sets, tile set 17 has a scale of 1 1/2 centimeter to 100 meters, or 150 centimeters to 10,000 meters. That's a scale of 1 / 6666, which is as close as you're going to get to your desired scale using an Open Street Map tile set.

I've attached an image using that scale. I'm not sure you're going to be able to see what you want to see.

Open Street Map Level 17

Anyway, to produce the image you want, you're going to have to do the following in whatever programming language you choose.

  • Gather the tiles you need from the Open Street Map web site. This may take a while, as you will be gathering lots of tiles and they have a limit on the number you can get at a time.
  • Stitch the tiles together to form one or more larger images.
  • Create your own transparent data layer.
  • Superimpose the transparent data layer on the tile layer.
  • Print the combined layer image.
like image 98
Gilbert Le Blanc Avatar answered Oct 04 '22 00:10

Gilbert Le Blanc