【问题标题】:Print map with own layer使用自己的图层打印地图
【发布时间】:2012-06-05 17:34:09
【问题描述】:

给定一个大城市(广场大约800 km^2),上面有一些层。该层可能包含多色特征,例如:

  • 文字

特征数量约为 1000。

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

我的目标是在尺寸(大约)5x5 米的纸上打印这样的地图。此外,此文档必须是高分辨率 - 在此文档上,我希望看到带有编号的建筑物、带有标题的街道等等。

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


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

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

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

  • 谷歌地图有similar feature。使用它我可以创建自己的图层。但是如果我有 1000 个特征,那么 URL 会很大,所以服务器不会加载它。而且这张地图不会是高分辨率的。


感谢您的帮助。

【问题讨论】:

  • 您的打印机的像素数/厘米是多少?
  • 这实际上不是打印机 - 它是绘图仪。不幸的是,我不知道这些技术细节。它只是可以打印尺寸(约)5mx5m的纸张。

标签: google-maps printing openlayers layer openstreetmap


【解决方案1】:

您想要绘制一个 5 米 x 5 米的绘图,绘制一个 40 公里 x 40 公里的城市。那是 1 / 8000 的比例。

查看开放街道地图图块集,图块集 17 的比例为 1 1/2 厘米到 100 米,或 150 厘米到 10,000 米。这是 1 / 6666 的比例,这与使用 Open Street Map 瓦片集达到所需比例一样接近。

我已使用该比例附加了一张图片。我不确定您是否能够看到您想看到的内容。

无论如何,要生成您想要的图像,您必须使用您选择的任何编程语言执行以下操作。

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

【讨论】:

  • 是的,想法是对的,但是如何实现呢?例如,如何收集瓷砖并缝合它们?
  • @Astor:我会使用 Java,因为这是我最熟悉的计算机语言。你必须编写自己的计算机代码来做你想做的事。没有现成的开源解决方案。我想你可以使用 Photoshop 创建透明数据层。
  • 无论如何我不想为此创建新的 API - 这非常复杂。而且我的预算非常有限,所以我不能为此购买和学习 Photoshop。但无论如何感谢您的回答 (+1)。
【解决方案2】:

您准备好使用易滑的地图图块了吗?如果没有,您可以使用更重量级的东西,例如 GIS(地理信息系统)包。 QGIS 是一个很好的具有高分辨率打印功能的开源地图查看器/操纵器,但周围还有其他的。

对于这些,您可以import the vector data(可通过 OSM 导出)表示地图,并完全按照您的喜好设置样式。然后有几个选项可以导出以进行高分辨率打印。

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

【讨论】:

  • 您的回答似乎对我来说是最好的。这就是为什么你会得到赏金和接受的答案。恭喜! :)
  • @Astor。谢谢你。您可能会发现让 QGIS 产生漂亮的输出的初始启动是一个相当长的学习曲线,但是如果您不止一次地使用地图做事情 - 它真的会得到回报。 gis.stackexchange.com 非常繁忙,对一个相对小众的领域很有帮助。
【解决方案3】:

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

【讨论】:

  • 感谢您的回答。 C#、windows - 两者都不喜欢。无论如何,我将拥有地图图像,我将如何在其上添加功能?使用图像编辑器?
  • 正如你所说,你可以使用 OpenLayers(LeafLet 也是一个不错的)制作一个简单的 web 应用程序,并将 OSM(或 Google 等)地图与你的功能结合起来。然后抓住它。如果你只需要这样做一次,那就行了。更“专业”的方法是使用 GIS,如下所示。使用 GIS 软件,您可以从原始矢量数据中可视化地图和要素,或使用与图层相结合的大型光栅图像。光栅图像必须有地理参考。如果您不熟悉 GIS,则需要一些时间来学习。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-18
  • 2018-09-27
  • 2015-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多