2013-07-01 97 views
0

我需要创建一个可以在Linux系统上运行的应用程序。基本上,我想实现类似Google Maps的功能,但功能要少得多。应用程序需要能够做到以下内容:OpenStreetMap - 处理离线地图的java库

  • 开放和显示离线地图,因为不会有任何互联网连接
  • 会有一个静态路由,像铁路,即必须是显示,它不会改变
  • 会有一个动态变化的点,应该更新

我从来没有真正开发这种应用程序的,我只用谷歌地图Android版V2,这是相当直接前进,所以我不会有任何问题,但没有互联网连接这不是一个选项。所以这里是我的问题:

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

此外,如果您可以提出任何建议,那将有助于我,我将不胜感激。

由于提前,欢呼声

+1

如果你正在linux机器上运行你的应用程序,你可以尝试设置你自己的磁贴服务器http://switch2osm.org/serving-tiles/building-a-tile-server-from-packages/ – user902383

回答

1

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

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

谢谢你您的评论,我刚才设法解决它,我发现了一个名为mapsforge的库,我做了什么我想要的。 :) – hundeva