Android Osmdroid从自己的数据库中获得兴趣点

时间:2015-04-15 08:19:00

标签: java android overlay offline osmdroid

这是我第一次使用stackoverflow,因为我真的很想解决这个问题。

我正在开发一个应用程序,其中包含有关我国巴士站的信息(如果我尝试从公共汽车上的X到Y,谷歌地图不起作用)所以我决定自己做。我已经跟踪了很多公共汽车的每一站。

我在我的osmdroid地图视图中显示每个公共汽车站作为叠加,我从内部数据库获取此信息,正如我所说,我收集了信息并且不在线。

我现在要做的是获取用户的位置(纬度,长度)并告诉他/她壁橱巴士停在他/她的位置。我已经看过Osmdroid bonuspack和POI功能,但据我所知,这些地方(餐馆,公共汽车站,医院等)已经在服务器上了。

如何使用本地信息在我的应用程序上实现POI功能。我很感激任何帮助,这是我想为我的社区做的事情。

谢谢大家,对不起我的英语不好。我正竭尽全力。

2 个答案:

答案 0 :(得分:0)

您已在数据库中拥有公交车站的坐标,并以叠加显示。您还可以获取当前用户的位置。你想要实现的是计算两点之间的geographical distance(用户的位置和公共汽车站)。

您不必自己实施合适的配方,例如:看看GeoPoint课程。有distanceTo(final IGeoPoint other)方法。您可以使用已知坐标实例化GeoPoint,或者只使用叠加方法。

你也可以通过查询用户位置某个半径范围内的公交车站(也许看看BoundingBox)来实现同样的目的

如果您想使用像BonusPack这样的库,请查看提供程序实现。您可以简单地为您的巴士站编写自己的提供商。看看例如this一个。

答案 1 :(得分:0)

  > How can I implement a POI function on my 
  > application with local information

我认为你的问题是关于如何在本地设备上渲染busstop"而不是"如何查询我的本地数据库"而不是"如何做一些服务器端支持。"

如果您想在本地Android设备上渲染busstops,可以使用osmbonuspack

,其中包含example app,其中显示了如何呈现交互式poi-s。

不幸的是,目前在jcenter / mavencentral上没有预编译的osmbonuspack,所以你必须将源包含在项目的本地子目录中。