适用于Java的Geocoder API

use*_*751 7 java google-app-engine google-geocoder

我正在尝试使用Geocoder API位于以下位置的for java:http://code.google.com/p/geocoder-java/

这些是我编写的代码行,当我将其作为GAE Web应用程序运行时,它可以很好地工作.

    final Geocoder geocoder = new Geocoder();
    GeocoderRequest geocoderRequest = new GeocoderRequestBuilder().setAddress(req.getParameter("location").toString()).setLanguage("en").getGeocoderRequest();
    GeocodeResponse geocoderResponse = geocoder.geocode(geocoderRequest);
    List<GeocoderResult> someList = geocoderResponse.getResults();
    GeocoderResult data = someList.get(0);
    GeocoderGeometry data_2 = data.getGeometry();
    BigDecimal Latitude = data_2.getLocation().getLat();
    BigDecimal Longitude = data_2.getLocation().getLng();
Run Code Online (Sandbox Code Playgroud)

它的作用是我提供一个文本,例如纽约,它找出该区域的经度和纬度.

但是,当我将相同的代码行放入GAE时,有时当我运行此代码时,我会在" GeocoderResult data = someList.get(0)" 处获得检查边界异常;

有时我没有得到错误,它正确显示网页上的坐标.所以我有点困惑,在网站上,它表明它支持GAE,或者geocoder谷歌提供的东西有什么问题本身有一些问题吗?

通常它在东部时间的下午或午夜不起作用.

Rom*_*min 5

我相信你在这里达到API限制.API速率限制是根据IP地址设置的,而Google App Engine等基础设施通常使用共享IP向服务器发出请求,因此当您的应用程序本身没有达到这些限制时,由于共享基础架构,它可能会点击这些限制,你没有得到任何结果.