谷歌地图api找到10公里内的医院

时间:2012-08-29 22:50:04

标签: android google-maps-api-3

我使用google map api为我的php项目指点标记。现在我正在构建一个Android应用程序。我有自己的mysql数据库中的经度和纬度的医院列表。我想构建应用程序,就像它将从gps获取coords并搜索我的数据库以寻找10公里范围内的医院。我见过像

这样的API

maps.googleapis.com/maps/api/place/search/output?parameters

但在这里我想使用自己的数据库。有什么出路吗?

提前致谢

2 个答案:

答案 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;
    }
}

只需传递设备的坐标和每家医院的坐标即可。 如果数据在服务器上,只需发送设备坐标,您就可以在服务器或数据库中实现上述功能。

希望它可以帮到你。