Package org.oscim.map
Class Map
java.lang.Object
org.oscim.map.Map
- All Implemented Interfaces:
TaskQueue
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceListener interface for input events.static interfaceListener interface for map update notifications. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Eventstatic final Eventstatic final EventUpdateListerner event.protected final Animatorprotected booleanprotected final AbstractMapEventLayerprotected final MapPositionstatic final EventUpdateListener event.static final EventUpdateListener event.static final EventUpdateListener event.static final EventUpdateListener event.static final EventUpdateListener event.static final EventUpdateLister event. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidPost a task to run on a shared worker-thread.animator()abstract voidCalled on render thread, use synchronized!voidclearMap()Request to clear all layers before rendering next framevoiddestroy()abstract voiddoneFrame(boolean needsRedraw) Called on render thread, use synchronized!getBoundingBox(int expand) abstract intReturn view height in pixel.Get currentMapPosition.booleangetMapPosition(boolean animationEnd, MapPosition mapPosition) Get currentMapPositionor at possible animation end.booleangetMapPosition(MapPosition mapPosition) Get currentMapPosition.abstract intReturn screen height in pixel.abstract intReturn screen width in pixel.abstract intgetWidth()Return view width in pixel.booleanhandleGesture(Gesture g, MotionEvent e) layers()abstract booleanPost a runnable to be executed on main-threadabstract booleanpostDelayed(Runnable action, long delay) Post a runnable to be executed on main-thread.protected voidThis function is run on main-thread before rendering a frame.abstract voidrender()Request to render a frame.setBaseMap(TileLayer tileLayer) setBaseMap(TileSource tileSource) Create OsmTileLayer with given TileSource and set as base map (layer 1).voidsetMapPosition(double latitude, double longitude, double scale) voidsetMapPosition(MapPosition mapPosition) SetMapPositionofViewportand trigger a redraw.voidsetTheme(IRenderTheme theme) voidsetTheme(IRenderTheme theme, boolean allLayers) Utility function to set theme of base vector-layer and use map background color from theme.Utility function to set theme of base vector-layer, optionally to all vector layers and use map background color from theme.abstract voidRequest call to onUpdate for all layers.abstract voidupdateMap(boolean redraw) Request call to onUpdate for all layers.viewport()
-
Field Details
-
POSITION_EVENT
UpdateListener event. Map position has changed. -
MOVE_EVENT
UpdateListener event. Map was moved by user. -
SCALE_EVENT
UpdateListener event. Map was scaled by user. -
ROTATE_EVENT
UpdateListener event. Map was rotated by user. -
TILT_EVENT
UpdateListener event. Map was tilted by user. -
UPDATE_EVENT
UpdateLister event. Delivered on main-thread when updateMap() was called and no CLEAR_EVENT or POSITION_EVENT was triggered. -
CLEAR_EVENT
UpdateListerner event. Map state has changed in a way that all layers should clear their state e.g. the theme or the TilesSource has changed. TODO should have an event-source to only clear affected layers. -
ANIM_END
-
ANIM_START
-
input
-
events
-
mAnimator
-
mMapPosition
-
mEventLayer
-
mClearMap
protected boolean mClearMap
-
-
Constructor Details
-
Map
public Map()
-
-
Method Details
-
getEventLayer
-
setBaseMap
Create OsmTileLayer with given TileSource and set as base map (layer 1). -
setBaseMap
-
setTheme
Utility function to set theme of base vector-layer and use map background color from theme. -
setTheme
Utility function to set theme of base vector-layer, optionally to all vector layers and use map background color from theme. -
setTheme
-
setTheme
-
destroy
public void destroy() -
updateMap
public abstract void updateMap()Request call to onUpdate for all layers. This function can be called from any thread. Request will be handled on main thread. -
updateMap
public abstract void updateMap(boolean redraw) Request call to onUpdate for all layers. This function can be called from any thread. Request will be handled on main thread.- Parameters:
redraw- pass true to render next frame afterwards
-
render
public abstract void render()Request to render a frame. Request will be handled on main thread. Use this for animations in RenderLayers. -
post
Post a runnable to be executed on main-thread -
postDelayed
Post a runnable to be executed on main-thread. Execution is delayed for at least 'delay' milliseconds. -
addTask
Post a task to run on a shared worker-thread. Should only use for tasks running less than a second. -
getWidth
public abstract int getWidth()Return view width in pixel. -
getHeight
public abstract int getHeight()Return view height in pixel. -
getScreenWidth
public abstract int getScreenWidth()Return screen width in pixel. -
getScreenHeight
public abstract int getScreenHeight()Return screen height in pixel. -
clearMap
public void clearMap()Request to clear all layers before rendering next frame -
setMapPosition
SetMapPositionofViewportand trigger a redraw. -
setMapPosition
public void setMapPosition(double latitude, double longitude, double scale) -
getMapPosition
Get currentMapPositionor at possible animation end.- Parameters:
animationEnd- map position at animation end (valid with Animator.animateTo methods)mapPosition- reuse MapPosition instance- Returns:
- true when MapPosition was updated (has changed)
-
getMapPosition
Get currentMapPosition.- Returns:
- true when MapPosition was updated (has changed)
-
getMapPosition
Get currentMapPosition. Consider using getViewport.getMapPosition(pos) instead to reuse MapPosition instance. -
getBoundingBox
-
viewport
- Returns:
- Viewport instance
-
layers
- Returns:
- Layers instance
-
animator
- Returns:
- MapAnimator instance
-
prepareFrame
protected void prepareFrame()This function is run on main-thread before rendering a frame.For internal use only. Do not call!
-
handleGesture
-
beginFrame
public abstract void beginFrame()Called on render thread, use synchronized! -
doneFrame
public abstract void doneFrame(boolean needsRedraw) Called on render thread, use synchronized!
-