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

Android Osmdroid get poins of interest from own database

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

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

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

我现在想做的是获取用户的位置(纬度、经度)并告诉 him/her 壁橱公交车站到 him/her 位置。我已经看过 Osmdroid bonuspack 和 POI 功能,但我的理解是这些地方(餐馆、公交车站、医院等)已经在服务器上了。

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

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

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

您不必自己实施合适的公式,例如看看 GeoPoint class。有一个 distanceTo(final IGeoPoint other) 方法。您可以使用已知坐标实例化 GeoPoint 或简单地使用 Overlay 方法。

您也可以通过仅查询用户位置特定半径范围内的公交车站来实现相同的目的(也许可以查看 BoundingBox

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

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

我假设你的问题是关于 "how to render busstops on local device" 而不是 "how to query my local database" 而不是 "how to do some server-side support."

如果您想在本地 android 设备上渲染公交车站,您可以使用 osmbonuspack

其中包含一个 example app,展示了如何呈现交互式 poi。

不幸的是,目前 jcenter/mavencentral 上没有预编译的 osmbonuspack aar,因此您必须将源代码包含在项目的本地子目录中。