打印带有自己图层的地图

时间:2012-06-05 17:34:10

标签: google-maps printing openlayers layer openstreetmap

鉴于一个大城市(广场大约 800平方公里),其上有一层。该图层可能包含多色功能,例如:

  • 线
  • 文本

功能数量约为1000。

地图资源 - Google地图 Openstreetmap (或者其他什么?)。

我的目标是在尺寸约为5x5米的纸张上打印此类地图。此文件也必须高分辨率 - 在本文中,我希望看到带有数字的建筑物,带字幕的街道等等。

生成此类可打印文件(图片,文档等)的最佳方法是什么?


以下是我找到的一些可能的解决方案:

  • 我知道OpenLayers API,因此我可以在Google Maps或Openstreetmap上绘制图层。但是如何将其转换为可打印格式?

  • 我发现Openstreetmap上有export feature。但是使用这个功能我无法导出我自己的图层,也不会是高分辨率。

  • Google地图有similar feature。使用它我可以创建自己的图层。但是如果我有1000个功能,那么URL会非常大,所以服务器不会加载它。此地图也不会很高。


感谢您的帮助。

3 个答案:

答案 0 :(得分:5)

你想要制作一幅距离40公里乘40公里的城市5米乘5米的画。这是一个1/8000的比例。

查看Open Street Map图块集,图块集17的比例为1 1/2厘米到100米,或150厘米到10,000米。这是一个1/6666的比例,它与你使用Open Street Map图块集达到你想要的比例一样接近。

我使用该比例附加了图像。我不确定你是否能够看到你想看到的东西。

Open Street Map Level 17

无论如何,要生成您想要的图像,您将不得不以您选择的任何编程语言执行以下操作。

  • 从Open Street Map网站收集您需要的图块。这可能需要一段时间,因为您将收集大量的瓷砖,并且它们对您一次可以获得的数量有限制。
  • 将瓷砖拼接在一起以形成一个或多个较大的图像。
  • 创建您自己的透明数据图层。
  • 在图块层上叠加透明数据图层。
  • 打印合并图层图像。

答案 1 :(得分:1)

也许this grabber会有所帮助。它只是从某个屏幕区域制作屏幕截图,然后拖动地图(通过模拟鼠标移动),制作另一个屏幕截图等。然后它将屏幕截图拼接成一张图片。因此,它几乎可以抓取任何滑动的地图,可以在浏览器中打开并通过鼠标移动(不使用API​​ - 清除WYSIWYG)。

答案 2 :(得分:1)

您是否已开始使用slippy地图图块?如果没有,你可以使用更重量级的东西,如GIS(地理信息系统)包。一个好的开源地图查看器/操纵器具有高分辨率打印功能QGIS但是还有其他的。

对于这些,您可以import the vector data(通过OSM导出提供)代表地图,并根据您的需要进行样式设置。然后有几个选项可以导出高分辨率打印。

最终,你可能会在错误的地方提出这个问题。你知道吗:gis.stackexchange.com