0
我正在使用osmdroid並已實施MapEventsReceiver,MapEventsOverlay和LongPressHelper以便在用戶按住地圖時添加新標記。這是第一次,也是第一次。OSMDROID - longPressHelper僅在用於添加標記時第一次觸發
如果我從我的longPressHelper中刪除addMarker(p);
,那麼它會每隔一次觸發一次。
有沒有人知道爲什麼會這樣發生?
代碼:
mapviewInit - 叫的onCreate 私人無效mapviewInit(){
mapview = (MapView) findViewById(R.id.mapview);
mapview.setTileSource(TileSourceFactory.MAPNIK);
mapview.setBuiltInZoomControls(true);
mapview.setMultiTouchControls(true);
IMapController mapController = mapview.getController();
mapController.setZoom(16);
GeoPoint startPoint = new GeoPoint(48.8583, 2.2944);
mapController.setCenter(startPoint);
MapEventsReceiver meReceiver = new MapEventsReceiver() {
@Override
public boolean singleTapConfirmedHelper(GeoPoint p) {
return false;
}
@Override
public boolean longPressHelper(GeoPoint p) {
Toast toast = Toast.makeText(getApplicationContext(), "DEBUGDEBUGDEBUG", Toast.LENGTH_LONG);
toast.show();
addMarker(p);
return true;
}
};
addMarker - 由LongPressHelper 公共無效addMarker稱爲(GeoPoint對象的GeoPoint){
Drawable dr = getResources().getDrawable(R.drawable.icn_crosshair_red);
Bitmap bitmap = ((BitmapDrawable) dr).getBitmap();
Drawable d = new BitmapDrawable(getResources(), Bitmap.createScaledBitmap(bitmap, 100, 100, true));
mapview.getOverlays().clear();
mapview.invalidate();
selectedPosMarker = new Marker(mapview);
selectedPosMarker.setPosition(geoPoint);
selectedPosMarker.setInfoWindow(null);
selectedPosMarker.setIcon(d);
selectedPosMarker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);
mapview.getOverlays().add(selectedPosMarker);
mapview.invalidate();
}
Ahhhh ok。我真正要做的只是從屏幕上刪除標記,以便它可以重新添加......無論如何,我可以刪除標記而不刪除整個覆蓋?感謝您的幫助和回覆 –
mapview.getOverlays()。remove(selectedPosMarker);您也可以將現有標記移動到新位置,而無需移除/創建。 – MKer