我使用google map api为我的php项目指点标记。现在我正在构建一个Android应用程序。我有自己的mysql数据库中的经度和纬度的医院列表。我想构建应用程序,就像它将从gps获取coords并搜索我的数据库以寻找10公里范围内的医院。我见过像
这样的APImaps.googleapis.com/maps/api/place/search/output?parameters
但在这里我想使用自己的数据库。有什么出路吗?
提前致谢
答案 0 :(得分:0)
我做了一些非常相似的事情并且也遇到了这个问题。
我收到了这个答案https://stackoverflow.com/a/10771017/975959
基本上,您可以编写一个php文件与您的数据库进行交互(比直接通过Android访问更好的解决方案)并让MySQL进行必要的计算,只返回距离小于10公里的那个。
祝你好运答案 1 :(得分:0)
如果您的问题是找到附近的医院,您可以使用以下代码:
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;
}
}
只需传递设备的坐标和每家医院的坐标即可。 如果数据在服务器上,只需发送设备坐标,您就可以在服务器或数据库中实现上述功能。
希望它可以帮到你。