当我点击地图时,如何做到这一点,标记消失了?

时间:2014-05-26 09:46:10

标签: osmdroid

我使用asmdroid 4.2和bonuspack 4.5。

我的代码添加标记:

       Marker startMarker = new Marker(mapView);
        startMarker.setPosition(new GeoPoint(locationA,locationB));
        startMarker.setIcon(getResources().getDrawable(drawable)); 
        startMarker.setTitle("jkdfghspdifj");
        startMarker.setAnchor(Marker.ANCHOR_CENTER, 1.0f);
        MarkerInfoWindow infoWindow = new  MyInfoWindow(R.layout.bonuspack_bubble, 
                mapView,title);
        startMarker.setInfoWindow(infoWindow);


 mapView.getOverlays().add(startMarker);

 mapView.zoomToBoundingBox(boundingBox);

 mapView.invalidate(); 

一切正常:)

我点击标记并显示弹出窗口。当你点击卡片本身时如何做到这一点,标记消失了? (此时它会消失,除非再次点击它)

2 个答案:

答案 0 :(得分:6)

要在点击地图上的任意位置时关闭所有打开的弹出窗口,请按照Tutorial 5,第16章处理地图事件

要在另一个标记上打开弹出窗口时关闭一个打开的弹出窗口,一个简单的解决方案是在所有标记之间共享相同的infoWindow对象。

或者调用“InfoWindow.closeAllInfoWindowsOn(map);”在onOpen。

答案 1 :(得分:0)

粘贴在我的MarkerInfoWindow类中 在metO onOpen

public void onOpen(Object arg0) {

    Marker current = (Marker) arg0;
    for(int i=0; i<mMapView.getOverlays().size(); ++i) {
        Overlay o = mMapView.getOverlays().get(i);

        if (o instanceof Marker) {
            Marker m = (Marker) o;
            if(m!=current)
                m.hideInfoWindow();
        }
    }
}