、私はすでにマップ上のいくつかの静的なオーバーレイを持っている、とGPS COORDSが変更されたとき、それは場所です変わる1つのダイナミック。だから、OSMDroidオーバーレイ複数の静的および動的な1
mapView.getOverlays().clear();
:
私の問題は、GPS COORDSが変更されたとき、私はダイナミックオーバーレイをクリアし、新しいものを作成する必要がありますが、私はそれを行うとき、それは使用して、すべてのオーバーレイをクリア、ということです、私はそれを行うより良い方法を見つけようとしています。
すべてクリアオーバーレイして、マップ上で再びそれらを配置(メモリを消費)または私は特定のオーバーレイをクリアすることができますか?
おかげ
編集:
は、これはダイナミックなマーカーである:
@Override
public void onLocationChanged(Location location) {
Log.d("Location", "onLocationChanged with location " + location.toString());
mLatitude = (int) (location.getLatitude() * 1E6);
mLongitude = (int) (location.getLongitude() * 1E6);
GeoPoint gpt = new GeoPoint(mLatitude,mLongitude);
markerYou.clear();
markerYou.add(new OverlayItem(getString(R.string.markerYou), getString(R.string.markerYouDescription), gpt));
mMyLocationOverlay = new ItemizedIconOverlay<OverlayItem>(markerYou, new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>() {
@Override
public boolean onItemSingleTapUp(final int index, final OverlayItem item) {
Toast.makeText(ShowMap.this, getString(R.string.markerYouDescription), Toast.LENGTH_SHORT).show();
return true;
}
@Override
public boolean onItemLongPress(final int index, final OverlayItem item) {
Toast.makeText(ShowMap.this, getString(R.string.markerYouDescription),Toast.LENGTH_SHORT).show();
return true;
}
}, mResourceProxy);
mapView.getOverlays().clear();
mapView.getOverlays().add(mMyLocationOverlay);
mapView.invalidate();
mapController.setCenter(gpt);
}
これは、静的なマーカーを置く機能である:
public void putPlacesOfInterest(){
this.dh = new DataHelper(ShowMap.this);
List<Pontos> list = this.dh.selectAll();
for(Pontos p : list){
markerPlaces.add(new OverlayItem(p.getName().toString(), p.getName().toString(), new GeoPoint(p.getLat(), p.getLng())));
}
mMyLocationOverlay = new ItemizedIconOverlay<OverlayItem>(markerPlaces, new OnItemGestureListener<OverlayItem>() {
@Override
public boolean onItemLongPress(int index, OverlayItem item) {
Toast.makeText(ShowMap.this, "Item " + item.mTitle, Toast.LENGTH_LONG).show();
return true;
}
@Override
public boolean onItemSingleTapUp(int index, OverlayItem item) {
Toast.makeText(ShowMap.this, "Item " + item.mTitle, Toast.LENGTH_LONG).show();
return true;
}
}, mResourceProxy);
mapView.getOverlays().add(mMyLocationOverlay);
mapView.invalidate();
}
マーカーの宣言はどのように見えますか? –