public static interface MapRenderer.Listener
onTileLoadingFinished()
及
onLayerTilesLoaded(int[])()
在绘图线程中回调, onCameraChanged(int)
可在主线程或绘图线程(某一时刻只能在一个线程)中回调外,其他回调均运行在在主线程中,可以用于更新UI 限定符和类型 | 方法和说明 |
---|---|
void |
onAnnotationClicked(Annotation annot,
int area)
点击
Annotation 时触发的回调此回调实际上运行于 MapRenderer.onTouchUp(int, int[], int[], int[]) 方法中,在点击Annotation 或其弹出气泡时被调用 |
void |
onAnnotationDeselected(Annotation annot)
当
Annotation 未被选中时触发的回调
此回调实际上运行于MapRenderer.onTouchUp(int, int[], int[], int[]) 方法中 |
void |
onAnnotationSelected(Annotation annot)
当
Annotation 被选中时触发的回调此回调实际上运行于 MapRenderer.onTouchUp(int, int[], int[], int[]) 方法中,当Annotation 的图标被点击,但它的弹出气泡没有想显示的情况下出发此回调。 |
void |
onCameraAnimationEnded()
摄像机变换动画结束后的回调函数
|
void |
onCameraChanged(int changeType)
相机状态发生改变时触发的回调
|
void |
onFocusChanged(int prevFocusedType,
int curFocusedType)
新的
Annotation ,Overlay 和POI被选中成为焦点时被触发 |
void |
onGestureAnimationEvent(boolean animStarted)
手势动画开始和结束时的回调
|
void |
onLayerTilesLoaded(int[] layerTypes)
在新的镜头视角下,至少一块地图分块数据加载完毕时触发,如,基础地图数据和TMC底图数据
此方法是在 MapRenderer.draw() 中调用的,所以是在绘图线程中被调用 |
void |
onLayerTilesReadyForDraw(int[] layerTypes)
监测状态中
MapRenderer.monitorDataReadiness()
,当前比例尺下所有格子的某一图层数据准备好时触发,所有图层数据准备好时结束。 |
void |
onNeedsDisplay()
刷新回调,每次刷新时都会回调此函数
无特殊情况,不应在此函数中添加处理逻辑,会影响刷新速度 |
void |
onOnlineDataVersionChecked(boolean upgraded)
在线地图数据版本升级检测回调
|
void |
onOverlayClicked(Overlay overlay,
int area)
|
void |
onOverlayDeselected(Overlay overlay)
|
void |
onOverlaySelected(Overlay overlay,
android.graphics.Point grabbedPoint)
|
void |
onOverlaySelectedNds(Overlay overlay,
NdsPoint grabbedPoint)
|
void |
onPoiClicked(java.lang.String name,
android.graphics.Point pos)
点击POI时触发的回调
此回调实际上运行于 MapRenderer.onTouchUp(int, int[], int[], int[]) 方法中 |
void |
onPoiDeselected(java.lang.String name,
android.graphics.Point pos)
反选POI时触发的回调
此回调实际上运行于 MapRenderer.onTouchUp(int, int[], int[], int[]) 方法中 |
void |
onPoiDeselectedNds(java.lang.String name,
NdsPoint pos)
反选POI时触发的回调
此回调实际上运行于 MapRenderer.onTouchUp(int, int[], int[], int[]) 方法中 |
void |
onPoiSelected(java.lang.String name,
android.graphics.Point pos)
选中POI时触发的回调
此回调实际上运行于 MapRenderer.onTouchUp(int, int[], int[], int[]) 方法中 |
void |
onPoiSelectedNds(java.lang.String name,
NdsPoint pos)
选中POI时触发的回调
此回调实际上运行于 MapRenderer.onTouchUp(int, int[], int[], int[]) 方法中 |
void |
onTileLoadingFinished()
地图分块数据加载完毕时触发,如,基础地图数据和TMC底图数据
此方法是在 MapRenderer.draw() 中调用的,所以是在绘图线程中被调用 |
void |
onUserRasterDataUpdated(int fromSource)
用户栅格数据更新,调用
MapRenderer#setDataPreference(int) 和MapRenderer#setDataUrlPrefix(int, String)
时触发,说明读取栅格数据时的数据来源 |
void onNeedsDisplay()
void onAnnotationClicked(Annotation annot, int area)
Annotation
时触发的回调MapRenderer.onTouchUp(int, int[], int[], int[])
方法中,在点击Annotation
或其弹出气泡时被调用annot
- 被点击的Annotation
area
- 被点击的区域Annotation.Area
,如果area为Annotation.Area.icon
,表示点击的是Annotation
的图标本身Annotation
,
Annotation.Area
void onAnnotationSelected(Annotation annot)
Annotation
被选中时触发的回调MapRenderer.onTouchUp(int, int[], int[], int[])
方法中,当Annotation
的图标被点击,但它的弹出气泡没有想显示的情况下出发此回调。annot
- 当前被选中的Annotation
Annotation
void onAnnotationDeselected(Annotation annot)
Annotation
未被选中时触发的回调
此回调实际上运行于MapRenderer.onTouchUp(int, int[], int[], int[])
方法中annot
- 当前取消选中状态的Annotation
Annotation
void onFocusChanged(int prevFocusedType, int curFocusedType)
Annotation
,Overlay
和POI被选中成为焦点时被触发prevFocusedType
- 前一个焦点的类型 MapRenderer.FocusedObjType
curFocusedType
- 当前焦点类型MapRenderer.FocusedObjType
,前后焦点所在的poi,
annotation和overlay可以通过onxxSelected和onxxDeselected获取void onOverlayClicked(Overlay overlay, int area)
overlay
- 被点击的Overlay
area
- 被点击的区域Annotation.Area
,如果回调的area为Annotation.Area.icon
,表示点击的是Overlay
本身Overlay
,
Annotation.Area
void onOverlaySelected(Overlay overlay, android.graphics.Point grabbedPoint)
overlay
- 被点击的Overlay
grabbedPoint
- 距离点击点最近的有效点坐标,通常情况下,这个点就是点击点本身,但是对于PolylineOverlay
或者RouteOverlay
可能不是点击点void onOverlaySelectedNds(Overlay overlay, NdsPoint grabbedPoint)
overlay
- 被点击的Overlay
grabbedPoint
- 距离点击点最近的有效Nds坐标,通常情况下,这个点就是点击点本身,但是对于PolylineOverlay
或者RouteOverlay
可能不是点击点void onPoiSelected(java.lang.String name, android.graphics.Point pos)
MapRenderer.onTouchUp(int, int[], int[], int[])
方法中name
- POI名称pos
- POI所在位置经纬度坐标void onPoiDeselected(java.lang.String name, android.graphics.Point pos)
MapRenderer.onTouchUp(int, int[], int[], int[])
方法中name
- POI名称pos
- POI所在位置经纬度坐标值void onPoiSelectedNds(java.lang.String name, NdsPoint pos)
MapRenderer.onTouchUp(int, int[], int[], int[])
方法中name
- POI名称pos
- POI所在的NDS坐标void onPoiDeselectedNds(java.lang.String name, NdsPoint pos)
MapRenderer.onTouchUp(int, int[], int[], int[])
方法中name
- POI名称pos
- POI所在位置的NDS坐标值void onPoiClicked(java.lang.String name, android.graphics.Point pos)
MapRenderer.onTouchUp(int, int[], int[], int[])
方法中name
- POI名称pos
- POI所在位置的坐标void onCameraChanged(int changeType)
changeType
- 相机参数改变类型MapRenderer.CameraSetting
MapRenderer.CameraSetting
void onGestureAnimationEvent(boolean animStarted)
animStarted
- 动画开始时为true,结束时为falsevoid onCameraAnimationEnded()
void onTileLoadingFinished()
MapRenderer.draw()
中调用的,所以是在绘图线程中被调用void onLayerTilesLoaded(int[] layerTypes)
MapRenderer.draw()
中调用的,所以是在绘图线程中被调用layerTypes
- 已经加载完成的图层瓦片对象 count,加载完成的图层瓦片数量void onLayerTilesReadyForDraw(int[] layerTypes)
MapRenderer.monitorDataReadiness()
,当前比例尺下所有格子的某一图层数据准备好时触发,所有图层数据准备好时结束。layerTypes
- 数据准备好的图层LayerType
void onOnlineDataVersionChecked(boolean upgraded)
upgraded
- 是否升级,如果升级则返回true,否则返回falsevoid onUserRasterDataUpdated(int fromSource)
MapRenderer#setDataPreference(int)
和MapRenderer#setDataUrlPrefix(int, String)
时触发,说明读取栅格数据时的数据来源fromSource
- 数据来源DataPreference
©Mapbar Engine Team;All Rights Reserved