3

マーカーがポイントにドラッグされたときに、マーカーの情報ウィンドウが表示されるようにします。そこに住所を表示したい。LogCat は正しいアドレスを提供するため、正常に動作しますが、情報ウィンドウは表示されません

これが私のコードです

private void placeMarker() {
    getMap().addMarker(new MarkerOptions()
            .position(getMyLocation())
            .draggable(true)
            .snippet("")
            .title(""));
    getMap().setOnMarkerDragListener(new OnMarkerDragListener() {

        public void onMarkerDragStart(Marker arg0) {
            // TODO Auto-generated method stub

        }

        public void onMarkerDragEnd(Marker marker) {
            latLng = marker.getPosition();
            marker.setSnippet("Loading address...");
            marker.showInfoWindow();

            Geocoder geoCoder = new Geocoder(getActivity(), Locale.getDefault());
            try {
                address = geoCoder.getFromLocation(latLng.latitude, latLng.longitude, 1).get(0);
                String addressString = address.getAddressLine(0);
                addressString += "\n"+address.getAddressLine(1);
                marker.setSnippet(addressString);
                marker.showInfoWindow();

                Log.d("get address pinpoint", "drag end: " + addressString+ " shown:" + marker.isVisible());
            } catch (IOException e) {
                e.printStackTrace();
            }


        }

        public void onMarkerDrag(Marker arg0) {
            // TODO Auto-generated method stub

        }
    });

}
4

2 に答える 2

2

デフォルトの情報ウィンドウを表示するには、空でないタイトルが必要です。

marker.setSnippet(addressString);に変更marker.setTitle(addressString);

補足として、UI スレッドでブロッキング コードを呼び出さないでください。geoCoder.getFromLocation内部で webservice を呼び出しています。

于 2013-03-20T20:31:11.913 に答える
0

marker.showInfoWindow(); を使用できます。

于 2014-03-04T18:53:43.977 に答える