Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从OpenStreetMaps API获取给定地址的坐标_Java_Jersey - Fatal编程技术网

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

Java 如何从OpenStreetMaps API获取给定地址的坐标,java,jersey,Java,Jersey,所以这个问题对你们中的一些人来说可能很琐碎,但请容忍我,我是这些方面的初学者。 我正在尝试使用Java制作一个桌面应用程序,从API获取各种地理信息(据我所知),这些信息都来自OpenStreetMaps开发人员。 在我的工作流程的第一步,我想做一种“导航”逻辑。 我需要两个地址之间的距离,我知道如何获得该距离,但为了实现这一点,我需要首先将这些地址转换为longlat坐标。 现在代码是: public static String getLongLat(String address) {

所以这个问题对你们中的一些人来说可能很琐碎,但请容忍我,我是这些方面的初学者。 我正在尝试使用Java制作一个桌面应用程序,从API获取各种地理信息(据我所知),这些信息都来自OpenStreetMaps开发人员。 在我的工作流程的第一步,我想做一种“导航”逻辑。 我需要两个地址之间的距离,我知道如何获得该距离,但为了实现这一点,我需要首先将这些地址转换为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;
} 

我还没有对返回的信息做任何主要的处理,因为没有。现在,如果我在浏览器栏中输入准确的URL,它会给我一个格式良好的JSON视图,我可以看到所有需要的细节,包括坐标和边界。但是如果我执行这个小代码段,它会返回一条消息说“301-永久移动”,我真的不知道为什么或者如何修复它,这样我的Java应用程序就会得到一个正确的JSON结果。

是的,对这个URL的
get
请求返回一个
301永久移动
响应,该响应指向

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