结束拖动时标记显示信息窗口

时间:2012-12-21 13:57:01

标签: android google-maps-markers google-maps-android-api-2

我希望在将标记拖动到某个点时显示标记的信息窗口。 我希望地址出现在其中。 我的LogCat给了我正确的地址,以便工作正常,但infowindow不显示

这是我的代码

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

        }
    });

}

2 个答案:

答案 0 :(得分:2)

您需要非空标题才能显示默认信息窗口。

marker.setSnippet(addressString);更改为marker.setTitle(addressString);

作为旁注:从不调用UI线程上的阻止代码。 geoCoder.getFromLocation在内部调用webservice。

答案 1 :(得分:0)

您可以使用marker.showInfoWindow();