首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌GeoCoding返回ZERO_RESULTS

谷歌GeoCoding返回ZERO_RESULTS
EN

Stack Overflow用户
提问于 2012-09-23 20:39:54
回答 1查看 2K关注 0票数 0

我使用google地理编码api来获取结果,但它返回"ZERO_RESULTS“。下面是代码

代码语言:javascript
复制
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“?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-24 01:13:24

您无需使用URLEncoder对地址进行编码,只需执行以下操作:

代码语言:javascript
复制
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());

或者更好:

代码语言:javascript
复制
   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
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12552425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档