我正在尝试使用反向地理编码为我的infowindow添加一个地址。出于某种原因,我的地址显示为: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);
}
答案 0 :(得分: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);