如何在离线地图中使用双击来删除多个标记usind OSMDROID?

时间:2015-08-12 09:49:49

标签: android dictionary osmdroid

我使用OSMDROID库开发离线地图,当我们点击Map上任何可以在其上创建标记的地方时,我只为多个标记开发代码。

我们可以在地图上添加多个标记,但我无法通过双击找到删除标记的方法,

即我创建四个标记A,B,C,D顺序,现在如果我双击标记B,它将从地图中删除

可行吗?如果是,那怎么样? 我使用下面的代码通过点击并双击地图

来添加和删除标记
  Overlay touchOverlay = new Overlay(this) {
        ItemizedIconOverlay<OverlayItem> anotherItemizedIconOverlay = null;
        @Override
        protected void draw(Canvas arg0, MapView arg1, boolean arg2) {
        }
        @Override
        public boolean onSingleTapConfirmed(final MotionEvent e,
                final MapView mpView) {
            Projection proj = mpView.getProjection();
            GeoPoint loc = (GeoPoint) proj.fromPixels((int) e.getX(),
                    (int) e.getY());
            ArrayList<OverlayItem> overlayArray = new ArrayList<OverlayItem>();
            OverlayItem mapItem = new OverlayItem("", "", new GeoPoint(
                    (((double) loc.getLatitudeE6()) / 1000000),
                    (((double) loc.getLongitudeE6()) / 1000000)));
            mapItem.setMarker(OfflineMapDemoActivity.this.getResources()
                    .getDrawable(R.drawable.location_mark));
            overlayArray.add(mapItem);
            anotherItemizedIconOverlay = new ItemizedIconOverlay<OverlayItem>(
                    getApplicationContext(), overlayArray, null);
            mpView.getOverlays().add(anotherItemizedIconOverlay);
            mpView.invalidate();
            return true;
        }
        @Override
        public boolean onDoubleTap(MotionEvent e, MapView mpView) {
            mpView.getOverlays().remove(anotherItemizedIconOverlay);
            mpView.invalidate();
            return true;
        }
    };
mapView.getOverlays().add(touchOverlay);

mapView是OSMDROID库中使用的BoundedMapView类的Object

0 个答案:

没有答案