diff --git a/vtm-android-example/res/drawable-hdpi/marker_green.png b/vtm-android-example/res/drawable-hdpi/marker_green.png new file mode 100644 index 00000000..f970f296 Binary files /dev/null and b/vtm-android-example/res/drawable-hdpi/marker_green.png differ diff --git a/vtm-android-example/res/drawable-hdpi/marker_red.png b/vtm-android-example/res/drawable-hdpi/marker_red.png new file mode 100644 index 00000000..b47e3834 Binary files /dev/null and b/vtm-android-example/res/drawable-hdpi/marker_red.png differ diff --git a/vtm-android-example/res/drawable-mdpi/marker_green.png b/vtm-android-example/res/drawable-mdpi/marker_green.png new file mode 100644 index 00000000..e9f88b0d Binary files /dev/null and b/vtm-android-example/res/drawable-mdpi/marker_green.png differ diff --git a/vtm-android-example/res/drawable-mdpi/marker_red.png b/vtm-android-example/res/drawable-mdpi/marker_red.png new file mode 100644 index 00000000..b42de8a0 Binary files /dev/null and b/vtm-android-example/res/drawable-mdpi/marker_red.png differ diff --git a/vtm-android-example/src/org/oscim/android/test/AtlasMarkerOverlayActivity.java b/vtm-android-example/src/org/oscim/android/test/AtlasMarkerOverlayActivity.java index 16ec5744..8257cc9f 100644 --- a/vtm-android-example/src/org/oscim/android/test/AtlasMarkerOverlayActivity.java +++ b/vtm-android-example/src/org/oscim/android/test/AtlasMarkerOverlayActivity.java @@ -18,8 +18,6 @@ */ package org.oscim.android.test; -import android.graphics.drawable.Drawable; - import org.oscim.backend.canvas.Bitmap; import org.oscim.core.GeoPoint; import org.oscim.layers.marker.ItemizedLayer; @@ -53,12 +51,8 @@ public class AtlasMarkerOverlayActivity extends MarkerOverlayActivity { mMap.layers().add(new LabelLayer(mMap, l)); mMap.setTheme(VtmThemes.DEFAULT); - /* directly load bitmap from resources */ - Bitmap bitmapPoi = drawableToBitmap(getResources(), R.drawable.marker_poi); - - /* another option: use some bitmap drawable */ - Drawable d = getResources().getDrawable(R.drawable.marker_focus); - Bitmap bitmapFocus = drawableToBitmap(d); + Bitmap bitmapPoi = drawableToBitmap(getResources().getDrawable(R.drawable.marker_poi)); + Bitmap bitmapFocus = drawableToBitmap(getResources().getDrawable(R.drawable.marker_focus)); // Create Atlas from Bitmaps java.util.Map inputMap = new LinkedHashMap<>(); diff --git a/vtm-android-example/src/org/oscim/android/test/ClusterMarkerOverlayActivity.java b/vtm-android-example/src/org/oscim/android/test/ClusterMarkerOverlayActivity.java index 64af7cd6..bd7eafd9 100644 --- a/vtm-android-example/src/org/oscim/android/test/ClusterMarkerOverlayActivity.java +++ b/vtm-android-example/src/org/oscim/android/test/ClusterMarkerOverlayActivity.java @@ -48,7 +48,7 @@ public class ClusterMarkerOverlayActivity extends MarkerOverlayActivity { mMap.layers().add(new LabelLayer(mMap, l)); mMap.setTheme(VtmThemes.DEFAULT); - Bitmap bitmapPoi = drawableToBitmap(getResources(), R.drawable.marker_poi); + Bitmap bitmapPoi = drawableToBitmap(getResources().getDrawable(R.drawable.marker_poi)); MarkerSymbol symbol; if (BILLBOARDS) symbol = new MarkerSymbol(bitmapPoi, MarkerSymbol.HotspotPlace.BOTTOM_CENTER); diff --git a/vtm-android-example/src/org/oscim/android/test/MarkerOverlayActivity.java b/vtm-android-example/src/org/oscim/android/test/MarkerOverlayActivity.java index e24774fa..e095aab5 100644 --- a/vtm-android-example/src/org/oscim/android/test/MarkerOverlayActivity.java +++ b/vtm-android-example/src/org/oscim/android/test/MarkerOverlayActivity.java @@ -17,7 +17,6 @@ */ package org.oscim.android.test; -import android.graphics.drawable.Drawable; import android.widget.Toast; import org.oscim.backend.canvas.Bitmap; @@ -59,21 +58,18 @@ public class MarkerOverlayActivity extends SimpleMapActivity mMap.layers().add(new LabelLayer(mMap, l)); mMap.setTheme(VtmThemes.DEFAULT); - /* directly load bitmap from resources */ - Bitmap bitmap = drawableToBitmap(getResources(), R.drawable.marker_poi); - + Bitmap bitmapPoi = drawableToBitmap(getResources().getDrawable(R.drawable.marker_poi)); MarkerSymbol symbol; if (BILLBOARDS) - symbol = new MarkerSymbol(bitmap, HotspotPlace.BOTTOM_CENTER); + symbol = new MarkerSymbol(bitmapPoi, HotspotPlace.BOTTOM_CENTER); else - symbol = new MarkerSymbol(bitmap, HotspotPlace.CENTER, false); + symbol = new MarkerSymbol(bitmapPoi, HotspotPlace.CENTER, false); - /* another option: use some bitmap drawable */ - Drawable d = getResources().getDrawable(R.drawable.marker_focus); + Bitmap bitmapFocus = drawableToBitmap(getResources().getDrawable(R.drawable.marker_focus)); if (BILLBOARDS) - mFocusMarker = new MarkerSymbol(drawableToBitmap(d), HotspotPlace.BOTTOM_CENTER); + mFocusMarker = new MarkerSymbol(bitmapFocus, HotspotPlace.BOTTOM_CENTER); else - mFocusMarker = new MarkerSymbol(drawableToBitmap(d), HotspotPlace.CENTER, false); + mFocusMarker = new MarkerSymbol(bitmapFocus, HotspotPlace.CENTER, false); mMarkerLayer = new ItemizedLayer<>(mMap, new ArrayList(), symbol, this); mMap.layers().add(mMarkerLayer); diff --git a/vtm-android-example/src/org/oscim/android/test/PoiSearchActivity.java b/vtm-android-example/src/org/oscim/android/test/PoiSearchActivity.java index f7f9ba86..4831df76 100644 --- a/vtm-android-example/src/org/oscim/android/test/PoiSearchActivity.java +++ b/vtm-android-example/src/org/oscim/android/test/PoiSearchActivity.java @@ -62,6 +62,8 @@ public class PoiSearchActivity extends MapsforgeMapActivity implements ItemizedL private static final String POI_CATEGORY = "Restaurants"; private static final int SELECT_POI_FILE = MapsforgeMapActivity.SELECT_THEME_FILE + 1; + private ItemizedLayer mMarkerLayer; + public static class PoiFilePicker extends FilePicker { public PoiFilePicker() { setFileDisplayFilter(new FilterByFileExtension(".poi")); @@ -98,6 +100,11 @@ public class PoiSearchActivity extends MapsforgeMapActivity implements ItemizedL } POI_FILE = intent.getStringExtra(FilePicker.SELECTED_FILE); + + Bitmap bitmap = drawableToBitmap(getResources().getDrawable(R.drawable.marker_green)); + MarkerSymbol symbol = new MarkerSymbol(bitmap, MarkerSymbol.HotspotPlace.BOTTOM_CENTER); + mMarkerLayer = new ItemizedLayer<>(mMap, new ArrayList(), symbol, this); + mMap.layers().add(mMarkerLayer); } } @@ -121,6 +128,9 @@ public class PoiSearchActivity extends MapsforgeMapActivity implements ItemizedL @Override public boolean onGesture(Gesture g, MotionEvent e) { if (g instanceof Gesture.LongPress) { + // Clear overlays + mMarkerLayer.removeAllItems(); + mMap.render(); // POI search new PoiSearchTask(PoiSearchActivity.this, POI_CATEGORY).execute(mMap.getBoundingBox(0)); return true; @@ -146,7 +156,7 @@ public class PoiSearchActivity extends MapsforgeMapActivity implements ItemizedL persistenceManager = AndroidPoiPersistenceManagerFactory.getPoiPersistenceManager(POI_FILE); PoiCategoryManager categoryManager = persistenceManager.getCategoryManager(); PoiCategoryFilter categoryFilter = new ExactMatchPoiCategoryFilter(); - categoryFilter.addCategory(categoryManager.getPoiCategoryByTitle(this.category)); + categoryFilter.addCategory(categoryManager.getPoiCategoryByTitle(category)); org.mapsforge.core.model.BoundingBox bb = new org.mapsforge.core.model.BoundingBox( params[0].getMinLatitude(), params[0].getMinLongitude(), params[0].getMaxLatitude(), params[0].getMaxLongitude()); @@ -173,14 +183,10 @@ public class PoiSearchActivity extends MapsforgeMapActivity implements ItemizedL } // Overlay POI - Bitmap bitmap = drawableToBitmap(getResources(), R.drawable.marker_poi); - MarkerSymbol symbol = new MarkerSymbol(bitmap, MarkerSymbol.HotspotPlace.CENTER); - ItemizedLayer markerLayer = new ItemizedLayer<>(mMap, new ArrayList(), symbol, PoiSearchActivity.this); - mMap.layers().add(markerLayer); List pts = new ArrayList<>(); for (PointOfInterest pointOfInterest : pointOfInterests) pts.add(new MarkerItem(pointOfInterest.getName(), "", new GeoPoint(pointOfInterest.getLatitude(), pointOfInterest.getLongitude()))); - markerLayer.addItems(pts); + mMarkerLayer.addItems(pts); mMap.render(); } } diff --git a/vtm-android/src/org/oscim/android/canvas/AndroidGraphics.java b/vtm-android/src/org/oscim/android/canvas/AndroidGraphics.java index 44bbdc12..c97bbf52 100644 --- a/vtm-android/src/org/oscim/android/canvas/AndroidGraphics.java +++ b/vtm-android/src/org/oscim/android/canvas/AndroidGraphics.java @@ -1,6 +1,6 @@ /* * Copyright 2010, 2011, 2012 mapsforge.org - * Copyright 2016 devemux86 + * Copyright 2016-2017 devemux86 * Copyright 2017 Longri * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). @@ -102,7 +102,7 @@ public final class AndroidGraphics extends CanvasAdapter { } public static Bitmap drawableToBitmap(Resources res, int resId) { - return new AndroidBitmap(res.openRawResource(resId)); + return drawableToBitmap(res.getDrawable(resId)); } /**