找到离我的位置最近的一个,即使它有 1000,000 公里远



我正在尝试编写一个android程序,该程序使用Google API查找离电话位置最近的医院。请注意,医院不一定在我的社区或城市。它可能很远,但它是最近的一个。

通过搜索,我找到了一个代码,该代码只在手机周围的特定半径内搜索,并找到了附近的所有医院。代码如下:

private String makeUrl(double latitude, double longitude,String place) {
     StringBuilder urlString = new StringBuilder("https://maps.googleapis.com/maps/api/place/search/json?");
    if (place.equals("")) {
            urlString.append("&location=");
            urlString.append(Double.toString(latitude));
            urlString.append(",");
            urlString.append(Double.toString(longitude));
            urlString.append("&radius=1000");
         //   urlString.append("&types="+place);
            urlString.append("&sensor=false&key=" + API_KEY);
    } else {
            urlString.append("&location=");
            urlString.append(Double.toString(latitude));
            urlString.append(",");
            urlString.append(Double.toString(longitude));
            urlString.append("&radius=1000");
            urlString.append("&types="+place);
            urlString.append("&sensor=false&key=" + API_KEY);
    }

    return urlString.toString();
}

这个代码对我来说还可以。我如何修改它来实现我的目标?非常感谢。

试试这个:

private String makeUrl(double latitude, double longitude,String place) {
StringBuilder urlString = new StringBuilder("https://maps.googleapis.com/maps/api/place/search/json?");
if (place.equals("")) {
        urlString.append("&location=");
        urlString.append(Double.toString(latitude));
        urlString.append(",");
        urlString.append(Double.toString(longitude));
        urlString.append("&radius=50000");  // <<-- change here
     //   urlString.append("&types="+place);
        urlString.append("&sensor=false&key=" + API_KEY);
} else {
        urlString.append("&location=");
        urlString.append(Double.toString(latitude));
        urlString.append(",");
        urlString.append(Double.toString(longitude));
        urlString.append("&radius=50000");  // <<-- change here
        urlString.append("&types="+place);
        urlString.append("&sensor=false&key=" + API_KEY);
}
return urlString.toString();
}

将半径增加到100000,就会根据距离得到响应。然后选择距离最低的地方作为你需要的地方。

应用dijkstra的最短路径算法。你必须首先使用图形结构才能使用GPS系统上通往医院的路径。然后可以应用最短路径算法。

相关内容

  • 没有找到相关文章

最新更新