diff --git a/vtm-android-example/res/drawable-hdpi/ic_action_search.png b/vtm-android-example/res/drawable-hdpi/ic_action_search.png deleted file mode 100644 index 67de12dec..000000000 Binary files a/vtm-android-example/res/drawable-hdpi/ic_action_search.png and /dev/null differ diff --git a/vtm-android-example/res/drawable-mdpi/ic_action_search.png b/vtm-android-example/res/drawable-mdpi/ic_action_search.png deleted file mode 100644 index 134d5490b..000000000 Binary files a/vtm-android-example/res/drawable-mdpi/ic_action_search.png and /dev/null differ diff --git a/vtm-android-example/res/drawable-xhdpi/ic_action_search.png b/vtm-android-example/res/drawable-xhdpi/ic_action_search.png deleted file mode 100644 index d699c6b37..000000000 Binary files a/vtm-android-example/res/drawable-xhdpi/ic_action_search.png and /dev/null differ 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 d84c0a760..015f67e1b 100644 --- a/vtm-android-example/src/org/oscim/android/test/MarkerOverlayActivity.java +++ b/vtm-android-example/src/org/oscim/android/test/MarkerOverlayActivity.java @@ -25,7 +25,6 @@ import org.oscim.core.GeoPoint; import org.oscim.layers.TileGridLayer; import org.oscim.layers.marker.ItemizedLayer; -import org.oscim.layers.marker.ItemizedLayer.OnItemGestureListener; import org.oscim.layers.marker.MarkerItem; import org.oscim.layers.marker.MarkerItem.HotspotPlace; import org.oscim.layers.marker.MarkerSymbol; @@ -37,9 +36,9 @@ import static org.oscim.tiling.source.bitmap.DefaultSources.STAMEN_TONER; public class MarkerOverlayActivity extends BitmapTileMapActivity - implements OnItemGestureListener { + implements ItemizedLayer.OnItemGestureListener { - private static final boolean BILLBOARDS = false; + private static final boolean BILLBOARDS = true; private MarkerSymbol mFocusMarker; public MarkerOverlayActivity() { @@ -68,12 +67,12 @@ public void onCreate(Bundle savedInstanceState) { mFocusMarker = new MarkerSymbol(drawableToBitmap(d), HotspotPlace.CENTER, false); ItemizedLayer markerLayer = - new ItemizedLayer(mMap, new ArrayList(), + new ItemizedLayer<>(mMap, new ArrayList(), symbol, this); mMap.layers().add(markerLayer); - List pts = new ArrayList(); + List pts = new ArrayList<>(); for (double lat = -90; lat <= 90; lat += 5) { for (double lon = -180; lon <= 180; lon += 5) diff --git a/vtm-playground/resources/res/marker_focus.png b/vtm-playground/resources/res/marker_focus.png new file mode 100644 index 000000000..80ebd9031 Binary files /dev/null and b/vtm-playground/resources/res/marker_focus.png differ diff --git a/vtm-playground/resources/res/marker_poi.png b/vtm-playground/resources/res/marker_poi.png new file mode 100644 index 000000000..13d569af3 Binary files /dev/null and b/vtm-playground/resources/res/marker_poi.png differ diff --git a/vtm-playground/src/org/oscim/test/MarkerLayerTest.java b/vtm-playground/src/org/oscim/test/MarkerLayerTest.java new file mode 100644 index 000000000..124ecda0c --- /dev/null +++ b/vtm-playground/src/org/oscim/test/MarkerLayerTest.java @@ -0,0 +1,90 @@ +/* + * Copyright 2016 devemux86 + * + * This program is free software: you can redistribute it and/or modify it under the + * terms of the GNU Lesser General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License along with + * this program. If not, see . + */ +package org.oscim.test; + +import org.oscim.backend.CanvasAdapter; +import org.oscim.backend.canvas.Bitmap; +import org.oscim.core.GeoPoint; +import org.oscim.gdx.GdxMapApp; +import org.oscim.layers.TileGridLayer; +import org.oscim.layers.marker.ItemizedLayer; +import org.oscim.layers.marker.MarkerItem; +import org.oscim.layers.marker.MarkerSymbol; +import org.oscim.layers.tile.bitmap.BitmapTileLayer; +import org.oscim.tiling.source.bitmap.DefaultSources; + +import java.util.ArrayList; +import java.util.List; + +public class MarkerLayerTest extends GdxMapApp implements ItemizedLayer.OnItemGestureListener { + + private static final boolean BILLBOARDS = true; + private MarkerSymbol mFocusMarker; + + @Override + public void createLayers() { + BitmapTileLayer bitmapLayer = new BitmapTileLayer(mMap, DefaultSources.STAMEN_TONER.build()); + bitmapLayer.tileRenderer().setBitmapAlpha(0.5f); + mMap.setBaseMap(bitmapLayer); + + mMap.setMapPosition(0, 0, 1 << 2); + + Bitmap bitmapPoi = CanvasAdapter.decodeBitmap(getClass().getResourceAsStream("/res/marker_poi.png")); + MarkerSymbol symbol; + if (BILLBOARDS) + symbol = new MarkerSymbol(bitmapPoi, MarkerItem.HotspotPlace.BOTTOM_CENTER); + else + symbol = new MarkerSymbol(bitmapPoi, MarkerItem.HotspotPlace.CENTER, false); + + Bitmap bitmapFocus = CanvasAdapter.decodeBitmap(getClass().getResourceAsStream("/res/marker_focus.png")); + if (BILLBOARDS) + mFocusMarker = new MarkerSymbol(bitmapFocus, MarkerItem.HotspotPlace.BOTTOM_CENTER); + else + mFocusMarker = new MarkerSymbol(bitmapFocus, MarkerItem.HotspotPlace.CENTER, false); + + ItemizedLayer markerLayer = new ItemizedLayer<>(mMap, new ArrayList(), symbol, this); + mMap.layers().add(markerLayer); + + List pts = new ArrayList<>(); + for (double lat = -90; lat <= 90; lat += 5) { + for (double lon = -180; lon <= 180; lon += 5) + pts.add(new MarkerItem(lat + "/" + lon, "", new GeoPoint(lat, lon))); + } + markerLayer.addItems(pts); + + mMap.layers().add(new TileGridLayer(mMap)); + } + + @Override + public boolean onItemSingleTapUp(int index, MarkerItem item) { + if (item.getMarker() == null) + item.setMarker(mFocusMarker); + else + item.setMarker(null); + + System.out.println(item.getTitle()); + return true; + } + + @Override + public boolean onItemLongPress(int index, MarkerItem item) { + return false; + } + + public static void main(String[] args) { + GdxMapApp.init(); + GdxMapApp.run(new MarkerLayerTest(), null, 400); + } +}