OpenStreetMap - 用于处理离线地图的java库

时间:2013-07-01 11:36:00

标签: java openstreetmap mapnik jmapviewer

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

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

我从来没有真正开发过这种应用程序,我只使用谷歌地图for android v2,这是非常直接的,所以我没有任何问题,但没有互联网连接,这不是一个选项。所以这是我的问题:

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

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

提前致谢,欢呼声

1 个答案:

答案 0 :(得分:1)

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

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