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 に答える