【问题标题】:how to do that when i click on the map, the marker disappeared?当我点击地图时,标记消失了怎么办?
【发布时间】:2014-05-26 09:46:10
【问题描述】:

我使用 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(); 

一切正常:)

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

【问题讨论】:

  • 你怎么称呼“卡”?是标记吗?弹出窗口?地图?

标签: osmdroid


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    粘贴到我的班级 MarkerInfoWindow 在方法上打开

    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();
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-12-04
      • 1970-01-01
      • 2014-08-25
      • 2021-02-21
      • 1970-01-01
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 2016-10-23
      相关资源
      最近更新 更多