我使用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