谷歌地图android V2:如何平移地图以显示InfoWindow

时间:2013-11-05 21:54:57

标签: java android google-maps

我有自定义Infowindow的地图,我想确保每次用户点击标记时信息窗口都会完全可见,我该怎么做?

我已经有一些代码可以防止点击标记居中,但我不知道如何做我需要的:

private void preventMarkerCenter(){
        map.setOnMarkerClickListener(new OnMarkerClickListener() {
        public boolean onMarkerClick(Marker marker) {
            // Check if there is an open info window
            if (lastOpenned != null) {
                // Close the info window
                lastOpenned.hideInfoWindow();

                // Is the marker the same marker that was already open
                if (lastOpenned.equals(marker)) {
                    // Nullify the lastOpenned object
                    lastOpenned = null;
                    // Return so that the info window isn't openned again
                    return true;
                } 
            }

            // Open the info window for the marker
            marker.showInfoWindow();
            // Re-assign the last openned such that we can close it later
            lastOpenned = marker;

            // Event was handled by our code do not launch default behaviour.
            return true;
        }
        });
    }

1 个答案:

答案 0 :(得分:0)

根据文档:http://developer.android.com/reference/com/google/android/gms/maps/GoogleMap.OnMarkerClickListener.html

通过返回true阻止的“默认行为”是显示信息窗口,然后将地图置于标记中心。

我想如果您不致电marker.showInfoWindow(),并返回false,您就会得到您想要的。

如果您想要的是将地图平移到足以显示信息窗口,那么您必须自己进行这些计算并使用CameraUpdateFactoryCameraUpdateFactory.scrollBy()或类似的东西平移地图。