我在我的 php 项目中使用了 google map api,只是为了指向标记。现在我正在构建一个安卓应用程序。我在自己的 mysql 数据库中有我所在州的医院的经度和纬度列表。我想构建这样的应用程序,它将从 gps 获取坐标并在我的数据库中搜索 10 公里半径内的医院。我见过类似 API
maps.googleapis.com/maps/api/place/search/output?parameters
但在这里我想使用我自己的数据库。有什么出路吗?
提前致谢
我在我的 php 项目中使用了 google map api,只是为了指向标记。现在我正在构建一个安卓应用程序。我在自己的 mysql 数据库中有我所在州的医院的经度和纬度列表。我想构建这样的应用程序,它将从 gps 获取坐标并在我的数据库中搜索 10 公里半径内的医院。我见过类似 API
maps.googleapis.com/maps/api/place/search/output?parameters
但在这里我想使用我自己的数据库。有什么出路吗?
提前致谢
如果您的问题是寻找附近的医院,您可以使用以下代码:
private boolean isItemInRange(double radius,
double latOrigin, double lonOrigin, double latDestination,
double lonDestination) {
double resultRadius = 6371 * Math.acos(Math.cos(Math.PI
* (90 - latDestination) / 180)
* Math.cos((90 - latOrigin) * Math.PI / 180)
+ Math.sin((90 - latDestination) * Math.PI / 180)
* Math.sin((90 - latOrigin) * Math.PI / 180)
* Math.cos((lonOrigin - lonDestination) * Math.PI / 180));
if (resultRadius <= radius){
return true;
} else {
return false;
}
}
只需传递设备的坐标和每个医院的坐标。如果数据在服务器上,只需发送设备坐标,您就可以在您的服务器或数据库中实现上述功能。
希望它可以帮助你。
我做了一些非常相似的事情,也遇到了这个问题。
我收到了这个答案https://stackoverflow.com/a/10771017/975959
基本上,您可以编写一个 php 文件来与您的数据库进行交互(比直接通过 Android 访问更好的解决方案)并让 MySQL 进行必要的计算,并且只返回接近 10 公里的那个。
祝你好运