1

我在我的 php 项目中使用了 google map api,只是为了指向标记。现在我正在构建一个安卓应用程序。我在自己的 mysql 数据库中有我所在州的医院的经度和纬度列表。我想构建这样的应用程序,它将从 gps 获取坐标并在我的数据库中搜索 10 公里半径内的医院。我见过类似 API

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

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

提前致谢

4

2 回答 2

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

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

希望它可以帮助你。

于 2012-08-29T23:02:53.183 回答
0

我做了一些非常相似的事情,也遇到了这个问题。

我收到了这个答案https://stackoverflow.com/a/10771017/975959

基本上,您可以编写一个 php 文件来与您的数据库进行交互(比直接通过 Android 访问更好的解决方案)并让 MySQL 进行必要的计算,并且只返回接近 10 公里的那个。

祝你好运

于 2012-08-29T22:57:14.857 回答