如何从OpenStreetMaps API的给定地址获取坐标

时间:2019-05-19 10:10:09

标签: java jersey

因此,对于您中的某些人来说,这个问题似乎微不足道,但请允许我,我是这些方面的初学者。 我正在尝试使用Java制作一个桌面应用程序,该应用程序从API(据我所知)中获取所有来自OpenStreetMaps开发人员的地理信息。 在我的工作流程的第一步中,我要进行某种“导航”逻辑。 我需要两个地址之间的距离,并且我知道如何获得该距离,但是要使其正常工作,我需要先将这些地址转换为经纬度坐标。 现在的代码:

public static String getLongLat(String address) {
    String temp = "";

    JSONObject longlat = makeRequest("http://nominatim.openstreetmap.org/search?q="+address+"&format=json&polygon=1&addressdetails=1","get");
    String lon = longlat.getString("lon");
    String lat = longlat.getString("lat");

    System.out.println(lon);
    System.out.println(lat);

    return temp;
} 

我还没有对返回的信息做任何重要的事情,因为没有信息。现在,如果我在浏览器栏中键入确切的URL,它将为我提供格式良好的JSON视图,并且我可以看到我需要的所有详细信息,包括坐标和界限。但是,如果我执行此小代码段,则会返回一条消息,指出“ 301-永久移动”,但我并没有真正了解为什么或如何解决此问题,因此我的Java应用程序无法获得正确的JSON结果。

1 个答案:

答案 0 :(得分:1)

是的,对此URL的dispatchDraw请求返回了指向该对象的GET响应

301 Moved Permanently

请注意使用https://nominatim.openstreetmap.org/search?q=Berlin&format=json&polygon=1&addressdetails=1 而不是https