cleanup: MarkerLayer, add simple ItemizedLayer constructor
This commit is contained in:
parent
1653e54541
commit
e3b279ed6d
@ -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);
|
||||
|
||||
@ -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.
|
||||
// *
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user