开发道路施工

This commit is contained in:
squallzhjch 2023-08-25 14:23:17 +08:00
parent 7c533faad2
commit 31074e8e71
5 changed files with 343 additions and 375 deletions

View File

@ -44,7 +44,7 @@ import com.navinfo.omqs.http.NetworkService
import com.navinfo.omqs.ui.dialog.CommonDialog
import com.navinfo.omqs.ui.manager.TakePhotoManager
import com.navinfo.omqs.ui.other.BaseToast
import com.navinfo.omqs.ui.widget.SignUtil
import com.navinfo.omqs.util.SignUtil
import com.navinfo.omqs.util.DateTimeUtil
import com.navinfo.omqs.util.ShareUtil
import com.navinfo.omqs.util.SoundMeter

View File

@ -13,7 +13,7 @@ import com.navinfo.omqs.databinding.AdapterSignBinding
import com.navinfo.omqs.databinding.AdapterSignLaneinfoBinding
import com.navinfo.omqs.ui.other.BaseRecyclerViewAdapter
import com.navinfo.omqs.ui.other.BaseViewHolder
import com.navinfo.omqs.ui.widget.SignUtil
import com.navinfo.omqs.util.SignUtil
interface OnSignAdapterClickListener {
fun onItemClick(signBean: SignBean)

View File

@ -14,7 +14,7 @@ import com.navinfo.omqs.bean.SignBean
import com.navinfo.omqs.databinding.FragmentSignInfoBinding
import com.navinfo.omqs.ui.activity.map.MainViewModel
import com.navinfo.omqs.ui.fragment.BaseFragment
import com.navinfo.omqs.ui.widget.SignUtil
import com.navinfo.omqs.util.SignUtil
class SignMoreInfoFragment : BaseFragment() {

View File

@ -1,4 +1,4 @@
package com.navinfo.omqs.ui.widget
package com.navinfo.omqs.util
import android.util.Log
import com.navinfo.collect.library.data.entity.RenderEntity
@ -23,27 +23,65 @@ class SignUtil {
fun getSignIconText(data: RenderEntity): String {
return when (data.code) {
//道路功能等级
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> getLinkFunctionClassText(data)
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> {
"FC${data.properties["functionClass"]}"
}
//道路种别
DataCodeEnum.OMDB_RD_LINK_KIND.code -> getKindText(data)
DataCodeEnum.OMDB_RD_LINK_KIND.code -> {
"${data.properties["kind"]}"
}
//道路方向
DataCodeEnum.OMDB_LINK_DIRECT.code -> getRoadDirectionText(data)
DataCodeEnum.OMDB_LINK_DIRECT.code -> {
when (data.properties["direct"]) {
"0" -> return "不应用"
"1" -> return ""
"2" -> return ""
"3" -> return ""
else -> ""
}
}
//常规线限速
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> getLineSpeedLimitText(data)
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> {
"${data.properties["maxSpeed"]}"
}
//全封闭
DataCodeEnum.OMDB_CON_ACCESS.code -> getConAccessText(data)
DataCodeEnum.OMDB_CON_ACCESS.code -> {
if (data.properties["conAccess"] === "1") "全封闭" else ""
}
//匝道
DataCodeEnum.OMDB_RAMP.code -> getRampText(data)
DataCodeEnum.OMDB_RAMP.code -> {
when (data.properties["formOfWay"]) {
"93" -> "普通匝"
"98" -> "高入匝"
"99" -> "高出匝"
"100" -> "高连匝"
"102" -> "直入匝"
"103" -> "直出匝"
"104" -> "出入匝"
else -> ""
}
}
//车道数
DataCodeEnum.OMDB_LANE_NUM.code -> getLaneNumText(data)
DataCodeEnum.OMDB_LANE_NUM.code -> {
"${data.properties["laneNum"]}|${data.properties["laneS2e"]}|${data.properties["laneE2s"]}"
}
//常规点限速,条件点限速
DataCodeEnum.OMDB_SPEEDLIMIT.code, DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> getSpeedLimitMaxText(
data
)
//上下线分离
DataCodeEnum.OMDB_MULTI_DIGITIZED.code -> getMultiDigitized(data)
DataCodeEnum.OMDB_MULTI_DIGITIZED.code -> {
if (data.properties["multiDigitized"] == "1") "上下线" else " "
}
//桥
DataCodeEnum.OMDB_BRIDGE.code -> getBridgeType(data)
DataCodeEnum.OMDB_BRIDGE.code -> {
when (data.properties["bridgeType"]) {
"1" -> return "固定桥"
"2" -> return "可移桥"
"3" -> return "跨线桥"
else -> ""
}
}
//隧道
DataCodeEnum.OMDB_TUNNEL.code -> "隧道"
//环岛
@ -73,101 +111,12 @@ class SignUtil {
DataCodeEnum.OMDB_LINK_FORM2_12.code -> "测试路"
DataCodeEnum.OMDB_LINK_FORM2_13.code -> "驾考路"
DataCodeEnum.OMDB_VIADUCT.code -> "高架"
DataCodeEnum.OMDB_LINK_CONSTRUCTION.code -> "道路施工"
DataCodeEnum.OMDB_LANE_CONSTRUCTION.code -> "车道施工"
else -> ""
}
}
/**
* 获取桥的类型值
*/
private fun getBridgeType(data: RenderEntity): String {
val bridgeType = data.properties["bridgeType"]
try {
when (bridgeType?.toInt()) {
1 -> return "固定桥"
2 -> return "可移桥"
3 -> return "跨线桥"
}
} catch (e: Throwable) {
}
return ""
}
/**
* 常规线限速值
*/
private fun getLineSpeedLimitText(data: RenderEntity): String {
return "${data.properties["maxSpeed"]}"
}
/**
* 获取全封闭值
*/
private fun getConAccessText(data: RenderEntity): String {
val conAccess = data.properties["conAccess"]
try {
if (conAccess?.toInt() == 1)
return "全封闭"
} catch (e: Throwable) {
}
return ""
}
/**
* 获取匝道值
*/
private fun getRampText(data: RenderEntity): String {
try {
val ramp = data.properties["formOfWay"]
return when (ramp?.toInt()) {
93 -> "普通匝"
98 -> "高入匝"
99 -> "高出匝"
100 -> "高连匝"
102 -> "直入匝"
103 -> "直出匝"
104 -> "出入匝"
else -> {
""
}
}
} catch (e: Throwable) {
}
return ""
}
/**
*获取道路功能等级文字
*/
private fun getLinkFunctionClassText(data: RenderEntity): String {
return "FC${data.properties["functionClass"]}"
}
/**
* 获取道路方向文字
*/
private fun getRoadDirectionText(data: RenderEntity): String {
val direct = data.properties["direct"]
when (direct?.toInt()) {
0 -> return "不应用"
1 -> return ""
2 -> return ""
3 -> return ""
}
return ""
}
/**
* 获取车道数展示文字
*/
private fun getLaneNumText(data: RenderEntity): String {
return "${data.properties["laneNum"]}|${data.properties["laneS2e"]}|${data.properties["laneE2s"]}"
}
/**
* 获取要素名称
*/
@ -235,15 +184,193 @@ class SignUtil {
DataCodeEnum.OMDB_LINK_FORM2_13.code -> "道路形态"
DataCodeEnum.OMDB_VIADUCT.code -> "高架"
DataCodeEnum.OMDB_LINK_CONSTRUCTION.code -> "道路施工"
DataCodeEnum.OMDB_LANE_CONSTRUCTION.code -> "车道施工"
else -> ""
}
}
/**
* 获取更多信息
*/
fun getMoreInfoAdapter(data: RenderEntity): TwoItemAdapter {
val adapter = TwoItemAdapter()
val list = mutableListOf<TwoItemAdapterItem>()
when (data.code) {
//可变线限速
DataCodeEnum.OMDB_LINK_SPEEDLIMIT_VAR.code ->
list.addAll(getChangeLimitSpeedInfo(data))
//常规点限速
DataCodeEnum.OMDB_SPEEDLIMIT.code ->
list.addAll(getSpeedLimitMoreInfoText(data))
//条件点限速
DataCodeEnum.OMDB_SPEEDLIMIT_COND.code ->
list.addAll(getConditionLimitMoreInfoText(data))
//到路线
DataCodeEnum.OMDB_RD_LINK.code -> {
list.add(
TwoItemAdapterItem(
title = "linkPid", text = "${data.properties["linkPid"]}"
)
)
list.add(
TwoItemAdapterItem(
title = "起点号码", text = "${data.properties["snodePid"]}"
)
)
list.add(
TwoItemAdapterItem(
title = "终点号码", text = "${data.properties["enodePid"]}"
)
)
}
//种别
DataCodeEnum.OMDB_RD_LINK_KIND.code -> {
list.add(
TwoItemAdapterItem(
title = "linkPid", text = "${data.properties["linkPid"]}"
)
)
try {
list.add(
TwoItemAdapterItem(
title = "种别",
text = "${getKindType(data.properties["kind"]!!.toInt())}"
)
)
} catch (e: Throwable) {
}
}
//道路方向
DataCodeEnum.OMDB_LINK_DIRECT.code -> {
list.add(
TwoItemAdapterItem(
title = "linkPid", text = "${data.properties["linkPid"]}"
)
)
try {
list.add(
TwoItemAdapterItem(
title = "通行方向",
text = "${getRoadDirectionType(data.properties["direct"]!!.toInt())}"
)
)
} catch (e: Throwable) {
}
}
//普通交限
DataCodeEnum.OMDB_RESTRICTION.code -> {
list.add(
TwoItemAdapterItem(
title = "linkIn",
text = "${data.properties["linkIn"]}"
)
)
list.add(
TwoItemAdapterItem(
title = "linkOut",
text = "${data.properties["linkOut"]}"
)
)
}
//道路功能等级
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> {
list.add(
TwoItemAdapterItem(
title = "功能等级",
text = "等级${data.properties["functionClass"]}"
)
)
}
//常规线限速
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> {
list.addAll(getLinkSpeedLimitMoreInfo(data))
}
//车道数
DataCodeEnum.OMDB_LANE_NUM.code -> {
list.add(
TwoItemAdapterItem(
title = "车道总数",
text = "${data.properties["laneNum"]}"
)
)
list.add(
TwoItemAdapterItem(
title = "顺方向车道数",
text = "${data.properties["laneS2e"]}"
)
)
list.add(
TwoItemAdapterItem(
title = "逆方向车道数",
text = "${data.properties["laneE2s"]}"
)
)
var str = when (data.properties["laneClass"]) {
"0" -> "未赋值"
"1" -> "一条车道"
"2" -> "两或三条"
"3" -> "四条及以上"
"-99" -> "参考PA"
else -> ""
}
list.add(
TwoItemAdapterItem(
title = "车道数等级",
text = str
)
)
}
//路口
DataCodeEnum.OMDB_INTERSECTION.code -> {
val type = when (data.properties["type"]) {
"0" -> "简单路口"
"1" -> "复合路口"
else -> ""
}
list.add(
TwoItemAdapterItem(
title = "路口类型",
text = type
)
)
}
//道路施工
DataCodeEnum.OMDB_LINK_CONSTRUCTION.code -> {
list.add(
TwoItemAdapterItem(
title = "linkPid", text = "${data.properties["linkPid"]}"
)
)
val validPeriod = data.properties["validPeriod"]
if(validPeriod != null){
}
}
//车道施工
DataCodeEnum.OMDB_LANE_CONSTRUCTION.code -> {
list.add(
TwoItemAdapterItem(
title = "linkPid", text = "${data.properties["linkPid"]}"
)
)
}
}
adapter.data = list
return adapter
}
/**
* 获取路口详细信息
*/
fun getIntersectionInfo(renderEntity: RenderEntity): List<LaneBoundaryItem> {
val list = mutableListOf<LaneBoundaryItem>()
list.add(
@ -526,12 +653,6 @@ class SignUtil {
return "0"
}
/**
* 获取种别名称
*/
private fun getKindText(data: RenderEntity): String {
return data.properties["kind"].toString()
}
/**
* 常规点限速更多信息
@ -572,37 +693,6 @@ class SignUtil {
return list
}
/**
* 限速图标
*/
private fun getSpeedLimitIcon(data: RenderEntity): Int {
try {
//限速标志 0 限速开始 1 限速解除
return when (data.properties["speedFlag"]) {
"1" -> return R.drawable.icon_speed_limit_off
else -> return R.drawable.icon_speed_limit
}
} catch (e: Exception) {
Log.e("jingo", "获取限速面板ICON出错2 $e")
}
return 0
}
/**
* 条件限速图标
*/
private fun getConditionalSpeedLimitIcon(data: RenderEntity): Int {
try {
//限速标志 0 限速开始 1 限速解除
return when (data.properties["speedFlag"]) {
"1" -> return R.drawable.icon_conditional_speed_limit_off
else -> return R.drawable.icon_conditional_speed_limit
}
} catch (e: Exception) {
Log.e("jingo", "获取限速面板ICON出错2 $e")
}
return 0
}
/**
* 获取看板图标
@ -617,9 +707,21 @@ class SignUtil {
// //车道数
// 2041 -> getLaneNumIcon(data)
//普通点限速
DataCodeEnum.OMDB_SPEEDLIMIT.code -> getSpeedLimitIcon(data)
DataCodeEnum.OMDB_SPEEDLIMIT.code -> {
//限速标志 0 限速开始 1 限速解除
when (data.properties["speedFlag"]) {
"1" -> return R.drawable.icon_speed_limit_off
else -> return R.drawable.icon_speed_limit
}
}
//条件点限速
DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> getConditionalSpeedLimitIcon(data)
DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> {
//限速标志 0 限速开始 1 限速解除
when (data.properties["speedFlag"]) {
"1" -> return R.drawable.icon_conditional_speed_limit_off
else -> return R.drawable.icon_conditional_speed_limit
}
}
//可变点限速
DataCodeEnum.OMDB_SPEEDLIMIT_VAR.code -> R.drawable.icon_change_limit
//电子眼
@ -631,7 +733,6 @@ class SignUtil {
}
/**
* 获取种别图标
*/
@ -902,9 +1003,11 @@ class SignUtil {
)
)
}
list.add( TwoItemAdapterItem(
title = "照射角度", text = "${renderEntity.properties["angle"]}"
))
list.add(
TwoItemAdapterItem(
title = "照射角度", text = "${renderEntity.properties["angle"]}"
)
)
return list
}
@ -1066,236 +1169,95 @@ class SignUtil {
}
}
/**
* 获取更多信息
*/
fun getMoreInfoAdapter(data: RenderEntity): TwoItemAdapter {
val adapter = TwoItemAdapter()
//常规线限速详细信息
private fun getLinkSpeedLimitMoreInfo(data: RenderEntity): List<TwoItemAdapterItem> {
val list = mutableListOf<TwoItemAdapterItem>()
when (data.code) {
DataCodeEnum.OMDB_LINK_SPEEDLIMIT_VAR.code ->
list.addAll(getChangeLimitSpeedInfo(data))
//常规点限速
DataCodeEnum.OMDB_SPEEDLIMIT.code ->
list.addAll(getSpeedLimitMoreInfoText(data))
//条件点限速
DataCodeEnum.OMDB_SPEEDLIMIT_COND.code ->
list.addAll(getConditionLimitMoreInfoText(data))
//到路线
DataCodeEnum.OMDB_RD_LINK.code -> {
list.add(
TwoItemAdapterItem(
title = "linkPid", text = "${data.properties["linkPid"]}"
)
)
list.add(
TwoItemAdapterItem(
title = "起点号码", text = "${data.properties["snodePid"]}"
)
)
list.add(
TwoItemAdapterItem(
title = "终点号码", text = "${data.properties["enodePid"]}"
)
)
}
//种别
DataCodeEnum.OMDB_RD_LINK_KIND.code -> {
list.add(
TwoItemAdapterItem(
title = "linkPid", text = "${data.properties["linkPid"]}"
)
)
try {
list.add(
TwoItemAdapterItem(
title = "种别",
text = "${getKindType(data.properties["kind"]!!.toInt())}"
)
)
} catch (e: Throwable) {
}
}
//道路方向
DataCodeEnum.OMDB_LINK_DIRECT.code -> {
list.add(
TwoItemAdapterItem(
title = "linkPid", text = "${data.properties["linkPid"]}"
)
)
try {
list.add(
TwoItemAdapterItem(
title = "通行方向",
text = "${getRoadDirectionType(data.properties["direct"]!!.toInt())}"
)
)
} catch (e: Throwable) {
}
}
DataCodeEnum.OMDB_RESTRICTION.code -> {
list.add(
TwoItemAdapterItem(
title = "linkIn",
text = "${data.properties["linkIn"]}"
)
)
list.add(
TwoItemAdapterItem(
title = "linkOut",
text = "${data.properties["linkOut"]}"
)
)
}
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> {
list.add(
TwoItemAdapterItem(
title = "功能等级",
text = "等级${data.properties["functionClass"]}"
)
)
}
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> {
val dir = when (data.properties["direction"]) {
"2" -> "顺方向"
"3" -> "逆方向"
else -> ""
}
if (dir != "") {
list.add(
TwoItemAdapterItem(
title = "限速方向",
text = dir
)
)
}
list.add(
TwoItemAdapterItem(
title = "最高限速值(km/h)",
text = "${data.properties["maxSpeed"]}"
)
)
var maxStr = when (data.properties["maxSpeedSource"]) {
"0" -> {
"不应用"
}
"1" -> {
"现场"
}
"2" -> {
"理论"
}
else -> ""
}
if (maxStr != "") {
list.add(
TwoItemAdapterItem(
title = "最高限速来源",
text = maxStr
)
)
}
list.add(
TwoItemAdapterItem(
title = "最低限速值(km/h)",
text = "${data.properties["minSpeed"]}"
)
)
var minStr = when (data.properties["minSpeedSource"]) {
"0" -> {
"不应用"
}
"1" -> {
"现场"
}
"2" -> {
"理论"
}
else -> ""
}
if (minStr != "") {
list.add(
TwoItemAdapterItem(
title = "最低限速来源",
text = minStr
)
)
}
var isLaneDependent = when (data.properties["isLaneDependent"]) {
"0" -> {
""
}
"1" -> {
""
}
else -> ""
}
if (isLaneDependent != "") {
list.add(
TwoItemAdapterItem(
title = "是否车道依赖",
text = isLaneDependent
)
)
}
}
DataCodeEnum.OMDB_LANE_NUM.code -> {
list.add(
TwoItemAdapterItem(
title = "车道总数",
text = "${data.properties["laneNum"]}"
)
)
list.add(
TwoItemAdapterItem(
title = "顺方向车道数",
text = "${data.properties["laneS2e"]}"
)
)
list.add(
TwoItemAdapterItem(
title = "逆方向车道数",
text = "${data.properties["laneE2s"]}"
)
)
var str = when (data.properties["laneClass"]) {
"0" -> "未赋值"
"1" -> "一条车道"
"2" -> "两或三条"
"3" -> "四条及以上"
"-99" -> "参考PA"
else -> ""
}
list.add(
TwoItemAdapterItem(
title = "车道数等级",
text = str
)
)
}
DataCodeEnum.OMDB_INTERSECTION.code -> {
val type = when (data.properties["type"]) {
"0" -> "简单路口"
"1" -> "复合路口"
else -> ""
}
list.add(
TwoItemAdapterItem(
title = "路口类型",
text = type
)
)
}
val dir = when (data.properties["direction"]) {
"2" -> "顺方向"
"3" -> "逆方向"
else -> ""
}
adapter.data = list
return adapter
if (dir != "") {
list.add(
TwoItemAdapterItem(
title = "限速方向",
text = dir
)
)
}
list.add(
TwoItemAdapterItem(
title = "最高限速值(km/h)",
text = "${data.properties["maxSpeed"]}"
)
)
var maxStr = when (data.properties["maxSpeedSource"]) {
"0" -> {
"不应用"
}
"1" -> {
"现场"
}
"2" -> {
"理论"
}
else -> ""
}
if (maxStr != "") {
list.add(
TwoItemAdapterItem(
title = "最高限速来源",
text = maxStr
)
)
}
list.add(
TwoItemAdapterItem(
title = "最低限速值(km/h)",
text = "${data.properties["minSpeed"]}"
)
)
var minStr = when (data.properties["minSpeedSource"]) {
"0" -> {
"不应用"
}
"1" -> {
"现场"
}
"2" -> {
"理论"
}
else -> ""
}
if (minStr != "") {
list.add(
TwoItemAdapterItem(
title = "最低限速来源",
text = minStr
)
)
}
var isLaneDependent = when (data.properties["isLaneDependent"]) {
"0" -> {
""
}
"1" -> {
""
}
else -> ""
}
if (isLaneDependent != "") {
list.add(
TwoItemAdapterItem(
title = "是否车道依赖",
text = isLaneDependent
)
)
}
return list
}
}
}

View File

@ -0,0 +1,6 @@
package com.navinfo.omqs.util
data class TimePeriod(
val child: TimePeriod? = null
)