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

How does one get Coordinates from a given address from the OpenStreetMaps API

所以这个问题对你们中的一些人来说可能看起来很微不足道,但请耐心等待,我是这些事情的初学者。 我正在尝试使用 Java 制作一个桌面应用程序,它从 API 获取各种地理信息(据我所知)都来自 OpenStreetMaps 开发人员。 在我的工作流程的第一步中,我想制作一种 "navigation" 逻辑。 我需要两个地址之间的距离,并且我知道如何获得该距离,但要使其正常工作,我需要先将这些地址转换为 longlat 坐标。 现在代码:

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

我还没有对返回的信息做任何重要的事情,因为有 none。现在,如果我在浏览器栏中输入确切的 URL,它会给我一个格式良好的 JSON 视图,我可以看到我需要的所有详细信息,包括坐标和边界。但是,如果我执行这个小代码片段,它 returns 会显示一条消息“301 - 永久移动”,但我真的不明白为什么或如何解决这个问题,所以我的 Java 应用程序得到了正确的 JSON结果。

是的,GET 对此 URL 的请求 returns 301 Moved Permanently 指向

的响应
https://nominatim.openstreetmap.org/search?q=Berlin&format=json&polygon=1&addressdetails=1

注意使用 https 而不是 http