【问题标题】:OpenStreetMap - java library to handle offline mapOpenStreetMap - 处理离线地图的 java 库
【发布时间】:2013-07-01 11:35:59
【问题描述】:

我需要创建一个可以在 linux 系统上运行的应用程序。基本上,我想实现类似谷歌地图的东西,但功能要少得多。应用程序需要能够执行以下操作:

  • 打开并显示离线地图,因为没有任何互联网连接
  • 会有一条静态路线,比如铁路,必须显示,不会改变
  • 会有一个动态变化点,应该更新

我从来没有真正开发过这种应用程序,我只使用了适用于 android v2 的谷歌地图,这很简单,所以我不会有任何问题,但如果没有互联网连接,这不是一个选择。所以这是我的问题:

  • 我下载了我需要的 .osm 格式的地图。如果我理解正确,我需要使用 Mapnik 之类的东西预渲染这些文件。这种方法正确吗?如果是,我如何使用 Mapnik 进行此渲染?如果没有,您有什么建议?
  • 假设我已经完成了渲染部分。如果我理解正确,现在我应该使用 JMapViewer 之类的东西。我应该将 .jar 导入到我的项目中,然后这个 api 将提供一个地图视图,并且通过一些编码,我可以使用该 api 来显示我已经渲染的离线地图。这是正确的吗?

另外,如果你能提出任何建议,那将对我有帮助,我将不胜感激。

先谢谢了,干杯

【问题讨论】:

标签: java openstreetmap mapnik jmapviewer


【解决方案1】:

基本上你必须遵循以下步骤:

  • 设置mapnik server 加载*.osm 文件并预渲染您需要的所有图块。 (将它们存储在某种 zip 存档中,因为在更高的缩放级别中变得相当大,您还可以填充硬盘驱动器上扇区中未使用的空间 [tar.gz])
  • 编写您自己的从 AbstractOsmTileSource 扩展的类以链接到存储的数据
  • 编写您自己的类来实现 TileLoader 接口以从存档中加载所需的切片
  • 创建 JMapViewer 实例并设置预先定义的 TileLoader 和 TileSource
  • 将铁路添加为 MapPolygon
  • 将当前位置添加为 MapMarker

【讨论】:

  • 感谢您的评论,虽然我不久前设法解决了这个问题,但我找到了一个名为 mapsforge 的库,我想要什么。 :)
猜你喜欢
  • 2012-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-29
  • 2020-11-20
  • 1970-01-01
  • 2019-07-27
  • 2013-05-18
相关资源
最近更新 更多