From e3b279ed6d01eb3c204374835e3f6f270572ccc2 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Mon, 10 Feb 2014 02:00:09 +0100 Subject: [PATCH] cleanup: MarkerLayer, add simple ItemizedLayer constructor --- .../oscim/layers/marker/ItemizedLayer.java | 13 ++++++++++-- .../oscim/layers/marker/MarkerRenderer.java | 20 ++++++++----------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/vtm/src/org/oscim/layers/marker/ItemizedLayer.java b/vtm/src/org/oscim/layers/marker/ItemizedLayer.java index 23bdfcfe..c6898e14 100644 --- a/vtm/src/org/oscim/layers/marker/ItemizedLayer.java +++ b/vtm/src/org/oscim/layers/marker/ItemizedLayer.java @@ -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 extends MarkerLayer protected OnItemGestureListener mOnItemGestureListener; protected int mDrawnItemsLimit = Integer.MAX_VALUE; + public ItemizedLayer(Map map, MarkerSymbol defaulMarker) { + this(map, new ArrayList(), defaulMarker, null); + } + public ItemizedLayer(Map map, List list, MarkerSymbol defaultMarker, - OnItemGestureListener onItemGestureListener) { + OnItemGestureListener listener) { super(map, defaultMarker); mItemList = list; - mOnItemGestureListener = onItemGestureListener; + mOnItemGestureListener = listener; populate(); } + public void setOnItemGestureListener(OnItemGestureListener listener) { + mOnItemGestureListener = listener; + } + @Override protected Item createItem(int index) { return mItemList.get(index); diff --git a/vtm/src/org/oscim/layers/marker/MarkerRenderer.java b/vtm/src/org/oscim/layers/marker/MarkerRenderer.java index 2885c86f..90c0fe05 100644 --- a/vtm/src/org/oscim/layers/marker/MarkerRenderer.java +++ b/vtm/src/org/oscim/layers/marker/MarkerRenderer.java @@ -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 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 ZSORT = new TimSort(); 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. // *