[6.6.0][视角切换] 逻辑优化
This commit is contained in:
@@ -2,23 +2,62 @@ package com.mogo.eagle.core.function.api.map.angle
|
||||
|
||||
import com.mogo.eagle.core.function.api.map.angle.ScreenToOriginDis.DEFAULT
|
||||
import com.mogo.map.uicontroller.*
|
||||
|
||||
interface IAttach {
|
||||
val angle: VisualAngleMode
|
||||
val priority: Int
|
||||
val displayThreshold: Long //最大展示时长 > 0; 表示最长展示多长时间, -1 表示,一直展示,直到触发默认视角, 0: 默认视角专用值,
|
||||
val delay: Long // 延迟多长时间切换
|
||||
val isCanSwitch: Boolean // 是否可切换
|
||||
val isCanTouch: Boolean // 是否响应地图触摸事件
|
||||
|
||||
fun getScreenToOriginDis(): ScreenToOriginDis = DEFAULT
|
||||
}
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
enum class ScreenToOriginDis {
|
||||
DEFAULT,
|
||||
UP,
|
||||
DOWN
|
||||
NONE,
|
||||
DEFAULT,
|
||||
UP,
|
||||
DOWN
|
||||
}
|
||||
|
||||
interface Scene: IAttach
|
||||
abstract class Scene(private val delay: Long, private val unit: TimeUnit = TimeUnit.SECONDS) {
|
||||
|
||||
/**
|
||||
* 获取当前视角场景的视角类型,此返回值要与地图支持的视角类型匹配
|
||||
*/
|
||||
abstract fun getVisualAngleMode(): VisualAngleMode
|
||||
|
||||
/**
|
||||
* 当前视角场景的优先级,优先级越高,表示可以打断优先级低的视角场景
|
||||
*/
|
||||
open fun getPriority(): Int = 0
|
||||
|
||||
/**
|
||||
* 单位:(毫秒)
|
||||
* 表示多长时间之后切换到当前视角场景
|
||||
*/
|
||||
final fun getDelay(): Long = unit.toMillis(delay)
|
||||
|
||||
/**
|
||||
* 单位:(毫秒)
|
||||
* 最大展示时长 > 0; 表示最长展示多长时间, -1 表示,一直展示,直到触发默认视角, 0: 默认视角专用值,
|
||||
* @return
|
||||
* 大于0: 此场景对应的视角展示指定时长后,自动切换到默认视角场景
|
||||
* 小于0: 一直展示此场景的视角,直到比此场景优先级:[getPriority]更高的场景触发时,才会终止
|
||||
*/
|
||||
open fun getDisplayThreshold(): Long = 0
|
||||
|
||||
/**
|
||||
* 用于业务层视角切换按钮的使能状态
|
||||
* @return true: 可以切换; false:不可以切换
|
||||
*/
|
||||
open fun isCanSwitch(): Boolean = true
|
||||
|
||||
/**
|
||||
* 用于控制高精地图控件(MapAutoView)是否禁掉所有手势
|
||||
* @return true: 响应地图控件的触摸事件及手势;false:不响应地图控件的触摸事件及手势
|
||||
*/
|
||||
open fun isCanTouch(): Boolean = true
|
||||
|
||||
/**
|
||||
* 返回自车相对于地图控件的位置
|
||||
* @return
|
||||
* 1. [ScreenToOriginDis.NONE]: 不设置
|
||||
* 2. [ScreenToOriginDis.DEFAULT]: 默认的位置
|
||||
* 3. [ScreenToOriginDis.UP]: 偏上
|
||||
* 4. [ScreenToOriginDis.DOWN]: 偏下
|
||||
*/
|
||||
open fun getScreenToOriginDis(): ScreenToOriginDis = DEFAULT
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user