0

我正在尝试使用反向地理编码将地址添加到我的信息窗口。出于某种原因,我的地址显示为:addresscom.google.gwt.maps.client.geocoder.GeocoderResult@157d1af,我不知道如何让它显示为字符串。这是我的代码。

final GeocoderRequest request = new GeocoderRequest();
request.setLatLng(point);   //point is lat long to be displayed
Geocoder geocoder = new Geocoder();
geocoder.geocode(request, new GeocoderCallback() {

    @Override
    public void callback(List<HasGeocoderResult> responses, String status) {
                HasGeocoderResult result = responses.get(0);
                String address = result.toString();


                infoWindow2.setContent(address);        

                infoWindow2.open(myMap.getMap(), marker2);
            }
4

1 回答 1

1

这可能意味着 HasGeocodeResult 类没有 toString 方法的特定实现。您看到的(GeocoderResult@157d1af)是 Object 类中 toString 标准实现的输出。

一个更好的想法是在 GeocoderResult 中寻找其他方法,您可以使用它来创建人类可读的结果描述。

例如,似乎有一个名为 getAddressComponents() 的方法。我相信您可以从这种方法(以及可能的其他一些方法)创建一个体面的输出。我不熟悉这些类,所以我真的不知道这些东西是什么,但是像这样的一些代码怎么样:

StringBuilder address = new StringBuilder();
for (HasAddressComponent component : result.getAddressComponent()) {
    address.append(component.getLongName());
    address.append("\n");
}

infoWindow2.setContent(address.toString);
于 2012-11-13T05:42:45.767 回答