0

結果を取得するためにgooglegeocodingapiを使用していますが、「ZERO_RESULTS」が返されます。以下はコードです

public class GeoCode {

public static void main(String[] args) throws Exception {
    GeoCode.geocode("latlng=40.714224,-73.961452");
    }
private static final String URL = "http://maps.googleapis.com/maps/api/geocode/json";


public static void geocode(String address) throws Exception {

    URL url = new URL(URL + "?" + URLEncoder.encode(address, "UTF-8") + "&sensor=false");
    URLConnection conn = url.openConnection();
    ByteArrayOutputStream output = new ByteArrayOutputStream(1024);
    IOUtils.copy(conn.getInputStream(), output);
    output.close();

    //JSONObject json = new JSONObject(output.toString());
    System.out.println(output.toString());
}
}

ブラウザのアドレスバーでアドレスを手動で使用すると、ブラウザにjsonの結果が表示されます。しかし、jsonで「ZERO_RESULTS」を返すという上記のコードの実際の問題は何ですか?

4

1 に答える 1

3

URLEncoder でアドレスをエンコードする必要はありません。

URL url = new URL(URL + "?" + address + "&sensor=false");
URLConnection conn = url.openConnection();
ByteArrayOutputStream output = new ByteArrayOutputStream(1024);
IOUtils.copy(conn.getInputStream(), output);
output.close();
System.out.println(output.toString());

または多分もっと良い:

   URL url = new URL("http://maps.googleapis.com/maps/api/geocode/json?" + address + "&sensor=false");
try {
    output = new Scanner(url.openStream()).useDelimiter("\\A").next());
} catch (java.util.NoSuchElementException e) {
    //empty result
}
于 2012-09-23T17:13:24.177 に答える