cleanup: MarkerLayer, add simple ItemizedLayer constructor

This commit is contained in:
Hannes Janetzek 2014-02-10 02:00:09 +01:00
parent 1653e54541
commit e3b279ed6d
2 changed files with 19 additions and 14 deletions

View File

@ -21,6 +21,7 @@
*/
package org.oscim.layers.marker;
import java.util.ArrayList;
import java.util.List;
import org.oscim.core.BoundingBox;
@ -41,17 +42,25 @@ public class ItemizedLayer<Item extends MarkerItem> extends MarkerLayer<Item>
protected OnItemGestureListener<Item> mOnItemGestureListener;
protected int mDrawnItemsLimit = Integer.MAX_VALUE;
public ItemizedLayer(Map map, MarkerSymbol defaulMarker) {
this(map, new ArrayList<Item>(), defaulMarker, null);
}
public ItemizedLayer(Map map, List<Item> list,
MarkerSymbol defaultMarker,
OnItemGestureListener<Item> onItemGestureListener) {
OnItemGestureListener<Item> listener) {
super(map, defaultMarker);
mItemList = list;
mOnItemGestureListener = onItemGestureListener;
mOnItemGestureListener = listener;
populate();
}
public void setOnItemGestureListener(OnItemGestureListener<Item> listener) {
mOnItemGestureListener = listener;
}
@Override
protected Item createItem(int index) {
return mItemList.get(index);

View File

@ -29,11 +29,6 @@ import org.oscim.renderer.elements.SymbolLayer;
import org.oscim.utils.TimSort;
import org.oscim.utils.geom.GeometryUtils;
//TODO
//- need to sort items back to front for rendering
//- and to make this work for multiple overlays
//a global scenegraph is probably required.
public class MarkerRenderer extends ElementRenderer {
protected final MarkerSymbol mDefaultMarker;
@ -41,21 +36,22 @@ public class MarkerRenderer extends ElementRenderer {
private final SymbolLayer mSymbolLayer;
private final float[] mBox = new float[8];
private final MarkerLayer<MarkerItem> mMarkerLayer;
private final Point mMapPoint = new Point();
/** increase view to show items that are partially visible */
protected int mExtents = 100;
/** flag to force update of markers */
private boolean mUpdate;
private InternalItem[] mItems;
private final Point mMapPoint = new Point();
static class InternalItem {
MarkerItem item;
boolean visible;
boolean changes;
float x, y;
double px, py;
float dy;
@Override
@ -192,6 +188,10 @@ public class MarkerRenderer extends ElementRenderer {
}
}
public void update() {
mUpdate = true;
}
static TimSort<InternalItem> ZSORT = new TimSort<InternalItem>();
public static void sort(InternalItem[] a, int lo, int hi) {
@ -223,10 +223,6 @@ public class MarkerRenderer extends ElementRenderer {
}
};
public void update() {
mUpdate = true;
}
// /**
// * Returns the Item at the given index.
// *