0

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

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

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

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

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

提前谢谢,干杯

4

1 回答 1

2

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

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