Samples improvements #32

This commit is contained in:
Emux 2017-09-28 20:12:04 +03:00
parent cedf3edc61
commit 02b29c7584
9 changed files with 23 additions and 27 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -18,8 +18,6 @@
*/ */
package org.oscim.android.test; package org.oscim.android.test;
import android.graphics.drawable.Drawable;
import org.oscim.backend.canvas.Bitmap; import org.oscim.backend.canvas.Bitmap;
import org.oscim.core.GeoPoint; import org.oscim.core.GeoPoint;
import org.oscim.layers.marker.ItemizedLayer; import org.oscim.layers.marker.ItemizedLayer;
@ -53,12 +51,8 @@ public class AtlasMarkerOverlayActivity extends MarkerOverlayActivity {
mMap.layers().add(new LabelLayer(mMap, l)); mMap.layers().add(new LabelLayer(mMap, l));
mMap.setTheme(VtmThemes.DEFAULT); mMap.setTheme(VtmThemes.DEFAULT);
/* directly load bitmap from resources */ Bitmap bitmapPoi = drawableToBitmap(getResources().getDrawable(R.drawable.marker_poi));
Bitmap bitmapPoi = drawableToBitmap(getResources(), R.drawable.marker_poi); Bitmap bitmapFocus = drawableToBitmap(getResources().getDrawable(R.drawable.marker_focus));
/* another option: use some bitmap drawable */
Drawable d = getResources().getDrawable(R.drawable.marker_focus);
Bitmap bitmapFocus = drawableToBitmap(d);
// Create Atlas from Bitmaps // Create Atlas from Bitmaps
java.util.Map<Object, Bitmap> inputMap = new LinkedHashMap<>(); java.util.Map<Object, Bitmap> inputMap = new LinkedHashMap<>();

View File

@ -48,7 +48,7 @@ public class ClusterMarkerOverlayActivity extends MarkerOverlayActivity {
mMap.layers().add(new LabelLayer(mMap, l)); mMap.layers().add(new LabelLayer(mMap, l));
mMap.setTheme(VtmThemes.DEFAULT); mMap.setTheme(VtmThemes.DEFAULT);
Bitmap bitmapPoi = drawableToBitmap(getResources(), R.drawable.marker_poi); Bitmap bitmapPoi = drawableToBitmap(getResources().getDrawable(R.drawable.marker_poi));
MarkerSymbol symbol; MarkerSymbol symbol;
if (BILLBOARDS) if (BILLBOARDS)
symbol = new MarkerSymbol(bitmapPoi, MarkerSymbol.HotspotPlace.BOTTOM_CENTER); symbol = new MarkerSymbol(bitmapPoi, MarkerSymbol.HotspotPlace.BOTTOM_CENTER);

View File

@ -17,7 +17,6 @@
*/ */
package org.oscim.android.test; package org.oscim.android.test;
import android.graphics.drawable.Drawable;
import android.widget.Toast; import android.widget.Toast;
import org.oscim.backend.canvas.Bitmap; import org.oscim.backend.canvas.Bitmap;
@ -59,21 +58,18 @@ public class MarkerOverlayActivity extends SimpleMapActivity
mMap.layers().add(new LabelLayer(mMap, l)); mMap.layers().add(new LabelLayer(mMap, l));
mMap.setTheme(VtmThemes.DEFAULT); mMap.setTheme(VtmThemes.DEFAULT);
/* directly load bitmap from resources */ Bitmap bitmapPoi = drawableToBitmap(getResources().getDrawable(R.drawable.marker_poi));
Bitmap bitmap = drawableToBitmap(getResources(), R.drawable.marker_poi);
MarkerSymbol symbol; MarkerSymbol symbol;
if (BILLBOARDS) if (BILLBOARDS)
symbol = new MarkerSymbol(bitmap, HotspotPlace.BOTTOM_CENTER); symbol = new MarkerSymbol(bitmapPoi, HotspotPlace.BOTTOM_CENTER);
else else
symbol = new MarkerSymbol(bitmap, HotspotPlace.CENTER, false); symbol = new MarkerSymbol(bitmapPoi, HotspotPlace.CENTER, false);
/* another option: use some bitmap drawable */ Bitmap bitmapFocus = drawableToBitmap(getResources().getDrawable(R.drawable.marker_focus));
Drawable d = getResources().getDrawable(R.drawable.marker_focus);
if (BILLBOARDS) if (BILLBOARDS)
mFocusMarker = new MarkerSymbol(drawableToBitmap(d), HotspotPlace.BOTTOM_CENTER); mFocusMarker = new MarkerSymbol(bitmapFocus, HotspotPlace.BOTTOM_CENTER);
else else
mFocusMarker = new MarkerSymbol(drawableToBitmap(d), HotspotPlace.CENTER, false); mFocusMarker = new MarkerSymbol(bitmapFocus, HotspotPlace.CENTER, false);
mMarkerLayer = new ItemizedLayer<>(mMap, new ArrayList<MarkerItem>(), symbol, this); mMarkerLayer = new ItemizedLayer<>(mMap, new ArrayList<MarkerItem>(), symbol, this);
mMap.layers().add(mMarkerLayer); mMap.layers().add(mMarkerLayer);

View File

@ -62,6 +62,8 @@ public class PoiSearchActivity extends MapsforgeMapActivity implements ItemizedL
private static final String POI_CATEGORY = "Restaurants"; private static final String POI_CATEGORY = "Restaurants";
private static final int SELECT_POI_FILE = MapsforgeMapActivity.SELECT_THEME_FILE + 1; private static final int SELECT_POI_FILE = MapsforgeMapActivity.SELECT_THEME_FILE + 1;
private ItemizedLayer<MarkerItem> mMarkerLayer;
public static class PoiFilePicker extends FilePicker { public static class PoiFilePicker extends FilePicker {
public PoiFilePicker() { public PoiFilePicker() {
setFileDisplayFilter(new FilterByFileExtension(".poi")); setFileDisplayFilter(new FilterByFileExtension(".poi"));
@ -98,6 +100,11 @@ public class PoiSearchActivity extends MapsforgeMapActivity implements ItemizedL
} }
POI_FILE = intent.getStringExtra(FilePicker.SELECTED_FILE); 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<MarkerItem>(), symbol, this);
mMap.layers().add(mMarkerLayer);
} }
} }
@ -121,6 +128,9 @@ public class PoiSearchActivity extends MapsforgeMapActivity implements ItemizedL
@Override @Override
public boolean onGesture(Gesture g, MotionEvent e) { public boolean onGesture(Gesture g, MotionEvent e) {
if (g instanceof Gesture.LongPress) { if (g instanceof Gesture.LongPress) {
// Clear overlays
mMarkerLayer.removeAllItems();
mMap.render();
// POI search // POI search
new PoiSearchTask(PoiSearchActivity.this, POI_CATEGORY).execute(mMap.getBoundingBox(0)); new PoiSearchTask(PoiSearchActivity.this, POI_CATEGORY).execute(mMap.getBoundingBox(0));
return true; return true;
@ -146,7 +156,7 @@ public class PoiSearchActivity extends MapsforgeMapActivity implements ItemizedL
persistenceManager = AndroidPoiPersistenceManagerFactory.getPoiPersistenceManager(POI_FILE); persistenceManager = AndroidPoiPersistenceManagerFactory.getPoiPersistenceManager(POI_FILE);
PoiCategoryManager categoryManager = persistenceManager.getCategoryManager(); PoiCategoryManager categoryManager = persistenceManager.getCategoryManager();
PoiCategoryFilter categoryFilter = new ExactMatchPoiCategoryFilter(); 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( org.mapsforge.core.model.BoundingBox bb = new org.mapsforge.core.model.BoundingBox(
params[0].getMinLatitude(), params[0].getMinLongitude(), params[0].getMinLatitude(), params[0].getMinLongitude(),
params[0].getMaxLatitude(), params[0].getMaxLongitude()); params[0].getMaxLatitude(), params[0].getMaxLongitude());
@ -173,14 +183,10 @@ public class PoiSearchActivity extends MapsforgeMapActivity implements ItemizedL
} }
// Overlay POI // Overlay POI
Bitmap bitmap = drawableToBitmap(getResources(), R.drawable.marker_poi);
MarkerSymbol symbol = new MarkerSymbol(bitmap, MarkerSymbol.HotspotPlace.CENTER);
ItemizedLayer<MarkerItem> markerLayer = new ItemizedLayer<>(mMap, new ArrayList<MarkerItem>(), symbol, PoiSearchActivity.this);
mMap.layers().add(markerLayer);
List<MarkerItem> pts = new ArrayList<>(); List<MarkerItem> pts = new ArrayList<>();
for (PointOfInterest pointOfInterest : pointOfInterests) for (PointOfInterest pointOfInterest : pointOfInterests)
pts.add(new MarkerItem(pointOfInterest.getName(), "", new GeoPoint(pointOfInterest.getLatitude(), pointOfInterest.getLongitude()))); pts.add(new MarkerItem(pointOfInterest.getName(), "", new GeoPoint(pointOfInterest.getLatitude(), pointOfInterest.getLongitude())));
markerLayer.addItems(pts); mMarkerLayer.addItems(pts);
mMap.render(); mMap.render();
} }
} }

View File

@ -1,6 +1,6 @@
/* /*
* Copyright 2010, 2011, 2012 mapsforge.org * Copyright 2010, 2011, 2012 mapsforge.org
* Copyright 2016 devemux86 * Copyright 2016-2017 devemux86
* Copyright 2017 Longri * Copyright 2017 Longri
* *
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * 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) { public static Bitmap drawableToBitmap(Resources res, int resId) {
return new AndroidBitmap(res.openRawResource(resId)); return drawableToBitmap(res.getDrawable(resId));
} }
/** /**