Samples: add map events in desktop marker example #32

This commit is contained in:
Emux 2016-11-25 09:49:46 +02:00
parent a8909fca08
commit d937f3516c

View File

@ -17,12 +17,17 @@ package org.oscim.test;
import org.oscim.backend.CanvasAdapter; import org.oscim.backend.CanvasAdapter;
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.event.Gesture;
import org.oscim.event.GestureListener;
import org.oscim.event.MotionEvent;
import org.oscim.gdx.GdxMapApp; import org.oscim.gdx.GdxMapApp;
import org.oscim.layers.Layer;
import org.oscim.layers.TileGridLayer; import org.oscim.layers.TileGridLayer;
import org.oscim.layers.marker.ItemizedLayer; import org.oscim.layers.marker.ItemizedLayer;
import org.oscim.layers.marker.MarkerItem; import org.oscim.layers.marker.MarkerItem;
import org.oscim.layers.marker.MarkerSymbol; import org.oscim.layers.marker.MarkerSymbol;
import org.oscim.layers.tile.bitmap.BitmapTileLayer; import org.oscim.layers.tile.bitmap.BitmapTileLayer;
import org.oscim.map.Map;
import org.oscim.tiling.source.bitmap.DefaultSources; import org.oscim.tiling.source.bitmap.DefaultSources;
import java.util.ArrayList; import java.util.ArrayList;
@ -41,6 +46,9 @@ public class MarkerLayerTest extends GdxMapApp implements ItemizedLayer.OnItemGe
bitmapLayer.tileRenderer().setBitmapAlpha(0.5f); bitmapLayer.tileRenderer().setBitmapAlpha(0.5f);
mMap.setBaseMap(bitmapLayer); mMap.setBaseMap(bitmapLayer);
// Map events receiver
mMap.layers().add(new MapEventsReceiver(mMap));
mMap.setMapPosition(0, 0, 1 << 2); mMap.setMapPosition(0, 0, 1 << 2);
Bitmap bitmapPoi = CanvasAdapter.decodeBitmap(getClass().getResourceAsStream("/res/marker_poi.png")); Bitmap bitmapPoi = CanvasAdapter.decodeBitmap(getClass().getResourceAsStream("/res/marker_poi.png"));
@ -76,7 +84,7 @@ public class MarkerLayerTest extends GdxMapApp implements ItemizedLayer.OnItemGe
else else
item.setMarker(null); item.setMarker(null);
System.out.println("Tap " + item.getTitle()); System.out.println("Marker tap " + item.getTitle());
return true; return true;
} }
@ -87,7 +95,7 @@ public class MarkerLayerTest extends GdxMapApp implements ItemizedLayer.OnItemGe
else else
item.setMarker(null); item.setMarker(null);
System.out.println("Long press " + item.getTitle()); System.out.println("Marker long press " + item.getTitle());
return true; return true;
} }
@ -95,4 +103,26 @@ public class MarkerLayerTest extends GdxMapApp implements ItemizedLayer.OnItemGe
GdxMapApp.init(); GdxMapApp.init();
GdxMapApp.run(new MarkerLayerTest()); GdxMapApp.run(new MarkerLayerTest());
} }
private class MapEventsReceiver extends Layer implements GestureListener {
MapEventsReceiver(Map map) {
super(map);
}
@Override
public boolean onGesture(Gesture g, MotionEvent e) {
if (g instanceof Gesture.Tap) {
GeoPoint p = mMap.viewport().fromScreenPoint(e.getX(), e.getY());
System.out.println("Map tap " + p);
return true;
}
if (g instanceof Gesture.LongPress) {
GeoPoint p = mMap.viewport().fromScreenPoint(e.getX(), e.getY());
System.out.println("Map long press " + p);
return true;
}
return false;
}
}
} }