cleanup: MarkerLayer, add simple ItemizedLayer constructor
This commit is contained in:
parent
1653e54541
commit
e3b279ed6d
@ -21,6 +21,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.oscim.layers.marker;
|
package org.oscim.layers.marker;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.oscim.core.BoundingBox;
|
import org.oscim.core.BoundingBox;
|
||||||
@ -41,17 +42,25 @@ public class ItemizedLayer<Item extends MarkerItem> extends MarkerLayer<Item>
|
|||||||
protected OnItemGestureListener<Item> mOnItemGestureListener;
|
protected OnItemGestureListener<Item> mOnItemGestureListener;
|
||||||
protected int mDrawnItemsLimit = Integer.MAX_VALUE;
|
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,
|
public ItemizedLayer(Map map, List<Item> list,
|
||||||
MarkerSymbol defaultMarker,
|
MarkerSymbol defaultMarker,
|
||||||
OnItemGestureListener<Item> onItemGestureListener) {
|
OnItemGestureListener<Item> listener) {
|
||||||
|
|
||||||
super(map, defaultMarker);
|
super(map, defaultMarker);
|
||||||
|
|
||||||
mItemList = list;
|
mItemList = list;
|
||||||
mOnItemGestureListener = onItemGestureListener;
|
mOnItemGestureListener = listener;
|
||||||
populate();
|
populate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setOnItemGestureListener(OnItemGestureListener<Item> listener) {
|
||||||
|
mOnItemGestureListener = listener;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Item createItem(int index) {
|
protected Item createItem(int index) {
|
||||||
return mItemList.get(index);
|
return mItemList.get(index);
|
||||||
|
|||||||
@ -29,11 +29,6 @@ import org.oscim.renderer.elements.SymbolLayer;
|
|||||||
import org.oscim.utils.TimSort;
|
import org.oscim.utils.TimSort;
|
||||||
import org.oscim.utils.geom.GeometryUtils;
|
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 {
|
public class MarkerRenderer extends ElementRenderer {
|
||||||
|
|
||||||
protected final MarkerSymbol mDefaultMarker;
|
protected final MarkerSymbol mDefaultMarker;
|
||||||
@ -41,21 +36,22 @@ public class MarkerRenderer extends ElementRenderer {
|
|||||||
private final SymbolLayer mSymbolLayer;
|
private final SymbolLayer mSymbolLayer;
|
||||||
private final float[] mBox = new float[8];
|
private final float[] mBox = new float[8];
|
||||||
private final MarkerLayer<MarkerItem> mMarkerLayer;
|
private final MarkerLayer<MarkerItem> mMarkerLayer;
|
||||||
|
private final Point mMapPoint = new Point();
|
||||||
|
|
||||||
/** increase view to show items that are partially visible */
|
/** increase view to show items that are partially visible */
|
||||||
protected int mExtents = 100;
|
protected int mExtents = 100;
|
||||||
|
|
||||||
|
/** flag to force update of markers */
|
||||||
private boolean mUpdate;
|
private boolean mUpdate;
|
||||||
|
|
||||||
private InternalItem[] mItems;
|
private InternalItem[] mItems;
|
||||||
|
|
||||||
private final Point mMapPoint = new Point();
|
|
||||||
|
|
||||||
static class InternalItem {
|
static class InternalItem {
|
||||||
MarkerItem item;
|
MarkerItem item;
|
||||||
boolean visible;
|
boolean visible;
|
||||||
boolean changes;
|
boolean changes;
|
||||||
float x, y;
|
float x, y;
|
||||||
double px, py;
|
double px, py;
|
||||||
|
|
||||||
float dy;
|
float dy;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -192,6 +188,10 @@ public class MarkerRenderer extends ElementRenderer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void update() {
|
||||||
|
mUpdate = true;
|
||||||
|
}
|
||||||
|
|
||||||
static TimSort<InternalItem> ZSORT = new TimSort<InternalItem>();
|
static TimSort<InternalItem> ZSORT = new TimSort<InternalItem>();
|
||||||
|
|
||||||
public static void sort(InternalItem[] a, int lo, int hi) {
|
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.
|
// * Returns the Item at the given index.
|
||||||
// *
|
// *
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user