使用osmdroid脱机使用地图数据

时间:2017-10-06 07:40:51

标签: osmdroid

我的最终目标是拥有地图数据(离线,因为我将自己自定义)并将其显示在应用程序(Android)中。我可以让osmdroid工作在线加载地图,我试图弄清楚如何下载和显示离线地图。我下载了MOBAC(Mobile Atlas Creator)并将数据导出为SQLite格式,当我查看它时,我意识到图块以图像格式(PNG)保存。

我想要做的是将数据导入到手机中以便稍后在搜索引擎或路由算法等算法中使用它,所以我需要"节点"和"方式" (当我从原始的OSM XML中获取它们)时,将它们导入到手机中并将其可视化以便以后将这些数据用于我想要开发的算法。基本上,MAPS.ME的作用。我认为将XML转换为SQLite并不困难,因为一个简单的脚本可以实现它,但是,如何从这个自定义SQLite数据库生成切片?或者,有没有办法以更合适的方式下载数据来完成我计划做的事情?

感谢。

1 个答案:

答案 0 :(得分:0)

从原始的Openstreetmap数据渲染应用中的切片将是计算繁重且效率低下的。我建议您使用导出的图像切片进行可视化表示。

除了图块之外,您还应该在应用程序中导出所需功能的数据集。您不需要Openstreetmap中的所有数据,因此您应该确定所需的内容并构建自定义导出(有用于处理和过滤Openstreetmap数据的工具和库。我使用pyosmium进行了一些过滤和处理但是有例如,您可以使用要搜索的POI构建自定义数据库。

路由是另一章。您可以自己实现它,但这是一项非常复杂的任务。 java library called Graphopper可以为您提供数据提取(来自Openstreetmap)和离线路由。他们也有一个在线API,但它可以让它完全脱机工作(我为一个应用程序做了)。尝试查看源代码,因为您可以看到复杂的主题路由。最后注释:从Graphopper导出的数据包含有关路径中某些POI的信息。有可能通过它的java API搜索一些东西,但我还没有调查过这个。