增加道路属性,跨线立交,匝道,上下线分离,隧道,环岛的道路属性展示

This commit is contained in:
squallzhjch 2023-08-16 11:22:07 +08:00
parent f7843baabe
commit 2431fc3bdd
7 changed files with 169 additions and 181 deletions

View File

@ -111,7 +111,7 @@
"name": "全封闭"
},
"2037": {
"table": "OMDB_TAMP",
"table": "OMDB_RAMP",
"code": 2037,
"name": "匝道"
},
@ -157,7 +157,7 @@
"transformer2Code": ""
},
"2204":{
"table": "OMDB_RoundAbout",
"table": "OMDB_ROUNDABOUT",
"code": 2204,
"name": "环岛",
"zoomMin": 15,

View File

@ -63,7 +63,7 @@ class RealmOperateHelper() {
val realmList = realm.where(RenderEntity::class.java)
.equalTo("table", "OMDB_RD_LINK")
.and()
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId())//.and().between("enable",1,2)
.findAll()
// 将获取到的数据和查询的polygon做相交只返回相交的数据
val dataList = realm.copyFromRealm(realmList)
@ -126,7 +126,7 @@ class RealmOperateHelper() {
val realmList = realm.where(RenderEntity::class.java)
.equalTo("table", table)
.and()
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId())//.and().between("enable",1,2)
.findAll()
// 将获取到的数据和查询的polygon做相交只返回相交的数据
val dataList = realm.copyFromRealm(realmList)
@ -165,7 +165,7 @@ class RealmOperateHelper() {
val realm = Realm.getDefaultInstance()
val realmList = realm.where(HadLinkDvoBean::class.java)
.equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
.equalTo("taskId",RealmDBParamUtils.getTaskId())//.and().between("enable",1,2)
.findAll()
var linkBean: HadLinkDvoBean? = null
var nearLast: Double = 99999.99
@ -189,7 +189,7 @@ class RealmOperateHelper() {
val realmR = realm.where(RenderEntity::class.java)
.equalTo("table", "OMDB_RD_LINK")
.and()
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId())//.and().between("enable",1,2)
.findFirst()
if (realmR != null) {
link = realm.copyFromRealm(realmR)
@ -207,7 +207,7 @@ class RealmOperateHelper() {
val realmR = realm.where(QsRecordBean::class.java)
.equalTo("table", "QsRecordBean")
.and()
.equalTo("id", markId).and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
.equalTo("id", markId).and().equalTo("taskId",RealmDBParamUtils.getTaskId())//.and().between("enable",1,2)
.findFirst()
if (realmR != null) {
qsRecordBean = realm.copyFromRealm(realmR)
@ -221,7 +221,7 @@ class RealmOperateHelper() {
val realm = Realm.getDefaultInstance()
val realmR = realm.where(RenderEntity::class.java)
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId())//.and().between("enable",1,2)
.findAll()
val dataList = realm.copyFromRealm(realmR)
@ -266,7 +266,7 @@ class RealmOperateHelper() {
val realmList = realm.where(RenderEntity::class.java)
.notEqualTo("table", "OMDB_RD_LINK")
.and()
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId())//.and().between("enable",1,2)
.findAll()
// 将获取到的数据和查询的polygon做相交只返回相交的数据
val queryResult = realmList?.stream()?.filter {
@ -296,7 +296,7 @@ class RealmOperateHelper() {
val realmList = realm.where(RenderEntity::class.java)
.notEqualTo("table", "OMDB_RD_LINK")
.and()
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId())//.and().between("enable",1,2)
.findAll()
result.addAll(realm.copyFromRealm(realmList))
return result

View File

@ -8,6 +8,7 @@ import android.graphics.drawable.AnimationDrawable
import android.graphics.drawable.BitmapDrawable
import android.os.Build
import android.os.Bundle
import android.provider.ContactsContract.Data
import android.text.TextUtils
import android.util.Log
import android.view.Gravity
@ -510,7 +511,7 @@ class MainViewModel @Inject constructor(
var elementList = realmOperateHelper.queryLinkByLinkPid(it)
for (element in elementList) {
if (element.code == "2011") {
if (element.code == DataCodeEnum.OMDB_LINK_NAME.code) {
hisRoadName = true
liveDataRoadName.postValue(element)
continue
@ -533,27 +534,36 @@ class MainViewModel @Inject constructor(
)
Log.e("jingo", "捕捉到的数据code ${element.code}")
when (element.code) {
//全封闭
2022 -> {
if (signBean.iconText.isNotEmpty()) {
DataCodeEnum.OMDB_MULTI_DIGITIZED.code,//上下线分离
DataCodeEnum.OMDB_CON_ACCESS.code,//全封闭
-> {
if (signBean.iconText != "") {
topSignList.add(
signBean
)
}
}
// //车道数,种别,功能等级,线限速,道路方向
// 2041, 2008, 2002, 2019, 2010, 2037 ->
// topSignList.add(
// signBean
// )
// 4002, 4003, 4004, 4010, 4022, 4601 -> signList.add(
// signBean
// )
DataCodeEnum.OMDB_LANE_NUM.code, DataCodeEnum.OMDB_RD_LINK_KIND.code, DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code, DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code, DataCodeEnum.OMDB_LINK_DIRECT.code -> topSignList.add(
DataCodeEnum.OMDB_LANE_NUM.code, //车道数
DataCodeEnum.OMDB_RD_LINK_KIND.code,//种别,
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code, // 功能等级,
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code, //线限速,
DataCodeEnum.OMDB_LINK_DIRECT.code,//道路方向,
DataCodeEnum.OMDB_RAMP.code, //匝道
DataCodeEnum.OMDB_BRIDGE.code,//桥
DataCodeEnum.OMDB_TUNNEL.code,//隧道
DataCodeEnum.OMDB_ROUNDABOUT.code,//环岛
DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code,//出入口
-> topSignList.add(
signBean
)
DataCodeEnum.OMDB_SPEEDLIMIT.code, DataCodeEnum.OMDB_SPEEDLIMIT_COND.code, DataCodeEnum.OMDB_SPEEDLIMIT_VAR.code, DataCodeEnum.OMDB_ELECTRONICEYE.code, DataCodeEnum.OMDB_TRAFFICLIGHT.code, DataCodeEnum.OMDB_LANEINFO.code -> signList.add(
DataCodeEnum.OMDB_SPEEDLIMIT.code,//常规点限速
DataCodeEnum.OMDB_SPEEDLIMIT_COND.code,//条件点限速
DataCodeEnum.OMDB_SPEEDLIMIT_VAR.code,//可变点限速
DataCodeEnum.OMDB_ELECTRONICEYE.code,//电子眼
DataCodeEnum.OMDB_TRAFFICLIGHT.code,//交通灯
DataCodeEnum.OMDB_LANEINFO.code,//车信
-> signList.add(
signBean
)
}

View File

@ -3,6 +3,7 @@ package com.navinfo.omqs.ui.activity.map
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.navinfo.collect.library.enum.DataCodeEnum
import com.navinfo.omqs.R
import com.navinfo.omqs.bean.SignBean
import com.navinfo.omqs.databinding.AdapterTopSignBinding
@ -23,7 +24,15 @@ class TopSignAdapter(private var itemListener: ((Int, SignBean) -> Unit?)? = nul
val item = data[position]
if (item.iconId != 0)
bd.topSignText.background = holder.viewBinding.root.context.getDrawable(item.iconId)
bd.topSignName.text = item.name
when (item.renderEntity.code) {
DataCodeEnum.OMDB_CON_ACCESS.code,
DataCodeEnum.OMDB_MULTI_DIGITIZED.code,
DataCodeEnum.OMDB_TUNNEL.code,
DataCodeEnum.OMDB_ROUNDABOUT.code
-> bd.topSignName.text = ""
else -> bd.topSignName.text = item.name
}
bd.topSignText.text = item.iconText
if (data.size == 1) {
bd.topSignLeftLine.visibility = View.GONE

View File

@ -30,17 +30,46 @@ class SignUtil {
//常规线限速
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> getLineSpeedLimitText(data)
//全封闭
2022 -> getConAccessText(data)
DataCodeEnum.OMDB_CON_ACCESS.code -> getConAccessText(data)
//匝道
2037 -> getRampText(data)
DataCodeEnum.OMDB_RAMP.code -> getRampText(data)
//车道数
DataCodeEnum.OMDB_LANE_NUM.code -> getLaneNumText(data)
//常规点限速,条件点限速
DataCodeEnum.OMDB_SPEEDLIMIT.code, DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> getSpeedLimitMaxText(data)
DataCodeEnum.OMDB_SPEEDLIMIT.code, DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> getSpeedLimitMaxText(
data
)
//上下线分离
DataCodeEnum.OMDB_MULTI_DIGITIZED.code -> getMultiDigitized(data)
//桥
DataCodeEnum.OMDB_BRIDGE.code -> getBridgeType(data)
//隧道
DataCodeEnum.OMDB_TUNNEL.code -> "隧道"
//环岛
DataCodeEnum.OMDB_ROUNDABOUT.code -> "环岛"
//主辅路出入口
DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.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 ""
}
/**
* 常规线限速值
*/
@ -55,7 +84,7 @@ class SignUtil {
val conAccess = data.properties["conAccess"]
try {
if (conAccess?.toInt() == 1)
return ""
return "全封闭"
} catch (e: Throwable) {
}
@ -131,9 +160,9 @@ class SignUtil {
//常规线限速
DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> "线限速"
//全封闭
2022 -> "全封闭"
DataCodeEnum.OMDB_CON_ACCESS.code -> "全封闭" //暂时不要标题
//匝道
2037 -> "匝道"
DataCodeEnum.OMDB_RAMP.code -> "匝道"
//车道数
DataCodeEnum.OMDB_LANE_NUM.code -> "车道数"
//常规点限速
@ -150,10 +179,21 @@ class SignUtil {
DataCodeEnum.OMDB_TRAFFICLIGHT.code -> "交通灯"
//车信
DataCodeEnum.OMDB_LANEINFO.code -> "车信"
//上下线分离
DataCodeEnum.OMDB_MULTI_DIGITIZED.code -> "上下线分离"
//桥
DataCodeEnum.OMDB_BRIDGE.code -> ""
//隧道
DataCodeEnum.OMDB_TUNNEL.code -> "隧道"
//环岛
DataCodeEnum.OMDB_ROUNDABOUT.code -> "环岛"
//主辅路出入口
DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code ->"出入口"
else -> ""
}
}
/**
* 获取车道边界类型详细信息
*/
@ -343,6 +383,21 @@ class SignUtil {
return result != 0
}
/**
* 获取上下线分离值
*/
private fun getMultiDigitized(data: RenderEntity): String {
val multiDigitized = data.properties["multiDigitized"]
try {
if (multiDigitized?.toInt() == 1)
return "上下线"
} catch (e: Throwable) {
}
return ""
}
/**
* 获取限速值文字
*/
@ -537,10 +592,22 @@ class SignUtil {
stringBuffer.append("当前道路")
for (item in topSignList) {
when (item.renderEntity.code) {
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> stringBuffer.append("功能等级${item.iconText.substring(2)}级,")
DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> stringBuffer.append(
"功能等级${
item.iconText.substring(
2
)
},"
)
DataCodeEnum.OMDB_RD_LINK_KIND.code -> stringBuffer.append("种别${item.iconText},")
DataCodeEnum.OMDB_LINK_DIRECT.code -> stringBuffer.append("${item.iconText},")
DataCodeEnum.OMDB_LANE_NUM.code -> stringBuffer.append("${item.iconText.substringBefore("|")}车道")
DataCodeEnum.OMDB_LANE_NUM.code -> stringBuffer.append(
"${
item.iconText.substringBefore(
"|"
)
}车道"
)
}
}
return stringBuffer.toString()

View File

@ -82,7 +82,7 @@
android:id="@+id/main_activity_top_sign_recyclerview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="280dp"
android:layout_marginLeft="220dp"
android:layout_marginTop="2dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent" />

View File

@ -4,161 +4,63 @@ package com.navinfo.collect.library.enum
* 要素枚举定义
* */
enum class DataCodeEnum(var tableName: String, var code: String) {
OMDB_CHECKPOINT("检查点", "1012"), OMDB_RD_LINK(
"道路线",
"2001"
),
OMDB_CHECKPOINT("检查点", "1012"),
OMDB_RD_LINK("道路线", "2001"),
OMDB_RD_LINK_FUNCTION_CLASS("道路功能等级", "2002"),
OMDB_LINK_ATTRIBUTE("道路属性", "2004"),
OMDB_LINK_ATTRIBUTE_SA("道路属性-SA", "2004-1"), OMDB_LINK_ATTRIBUTE_PA(
"道路属性-PA",
"2004-2"
),
OMDB_LINK_ATTRIBUTE_FORNTAGE(
"道路属性-辅路",
"2004-3"
),
OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS(
"道路属性-主辅路出入口",
"2004-4"
),
OMDB_LINK_ATTRIBUTE_SA("道路属性-SA", "2004-1"),
OMDB_LINK_ATTRIBUTE_PA("道路属性-PA", "2004-2"),
OMDB_LINK_ATTRIBUTE_FORNTAGE("道路属性-辅路", "2004-3"),
OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS("道路属性-主辅路出入口", "2004-4"),
OMDB_RD_LINK_KIND("道路种别", "2008"),
OMDB_LINK_DIRECT("道路方向", "2010"), OMDB_LINK_NAME(
"道路名",
"2011"
),
OMDB_LINK_DIRECT("道路方向", "2010"),
OMDB_LINK_NAME("道路名", "2011"),
OMDB_LANE_MARK_BOUNDARYTYPE("车道边界类型", "2013"),
OMDB_LINK_SPEEDLIMIT("常规线限速", "2019"), OMDB_LINK_SPEEDLIMIT_COND(
"条件线限速",
"2020"
),
OMDB_LINK_SPEEDLIMIT("常规线限速", "2019"),
OMDB_LINK_SPEEDLIMIT_COND("条件线限速", "2020"),
OMDB_LINK_SPEEDLIMIT_VAR("可变线限速", "2021"),
OMDB_CON_ACCESS("全封闭", "2022"),
OMDB_RAMP(
"匝道",
"2037"
),
OMDB_RAMP_1(
"普通路连接匝道",
"2037-1"
),
OMDB_RAMP_2(
"高速入口匝道",
"2037-2"
),
OMDB_RAMP_3(
"高速出口匝道",
"2037-3"
),
OMDB_RAMP_4(
"高速连接匝道",
"2037-4"
),
OMDB_RAMP_5(
"高速直连入口匝道",
"2037-5"
),
OMDB_RAMP_6(
"高速直连出口匝道",
"2037-6"
),
OMDB_RAMP_7(
"高速直连出口匝道高速出入口匝道",
"2037-7"
),
OMDB_MULTI_DIGITIZED("上下线分离", "2040"), OMDB_LANE_NUM("车道数", "2041"),
OMDB_RAMP("匝道", "2037"),
OMDB_RAMP_1("普通路连接匝道", "2037-1"),
OMDB_RAMP_2("高速入口匝道", "2037-2"),
OMDB_RAMP_3("高速出口匝道", "2037-3"),
OMDB_RAMP_4("高速连接匝道", "2037-4"),
OMDB_RAMP_5("高速直连入口匝道", "2037-5"),
OMDB_RAMP_6("高速直连出口匝道", "2037-6"),
OMDB_RAMP_7("高速直连出口匝道高速出入口匝道", "2037-7"),
OMDB_MULTI_DIGITIZED("上下线分离", "2040"),
OMDB_LANE_NUM("车道数", "2041"),
OMDB_VIADUCT("高架", "2043"),
OMDB_RDBOUND_BOUNDARYTYPE("道路边界类型", "2083"), OMDB_BRIDGE(
"",
"2201"
),
OMDB_RDBOUND_BOUNDARYTYPE("道路边界类型", "2083"),
OMDB_BRIDGE("", "2201"),
OMDB_TUNNEL("隧道", "2202"),
OMDB_RoundAbout(
"环岛",
"2204"
),
OMDB_LINK_FORM1(
"道路形态1",
"2205"
),
OMDB_LINK_FORM1_1(
"U-Turn",
"2205-1"
),
OMDB_LINK_FORM1_2(
"提前右转",
"2205-2"
),
OMDB_LINK_FORM1_3(
"提前左转",
"2205-3"
),
OMDB_LINK_FORM2(
"道路形态2",
"2206"
),
OMDB_LINK_FORM2_1(
"IC",
"2206-1"
),
OMDB_LINK_FORM2_2(
"JCT",
"2206-2"
),
OMDB_LINK_FORM2_3(
"跨线地道",
"2206-3"
),
OMDB_LINK_FORM2_4(
"私道",
"2206-4"
),
OMDB_LINK_FORM2_5(
"步行街",
"2206-5"
),
OMDB_LINK_FORM2_6(
"公交专用道",
"2206-6"
),
OMDB_LINK_FORM2_7(
"POI 连接路",
"2206-7"
),
OMDB_LINK_FORM2_8(
"区域内道路",
"2206-8"
),
OMDB_LINK_FORM2_9(
"停车场出入口连接路",
"2206-9"
),
OMDB_LINK_FORM2_10(
"停车场内部虚拟连接路",
"2206-10"
),
OMDB_LINK_FORM2_11(
"风景路线",
"2206-11"
),OMDB_LINK_FORM2_12(
"车辆测试路段",
"2206-12"
),
OMDB_LINK_FORM2_13(
"驾照考试路段",
"2206-13"
),
OMDB_ROUNDABOUT("环岛", "2204"),
OMDB_LINK_FORM1("道路形态1", "2205"),
OMDB_LINK_FORM1_1("U-Turn", "2205-1"),
OMDB_LINK_FORM1_2("提前右转", "2205-2"),
OMDB_LINK_FORM1_3("提前左转", "2205-3"),
OMDB_LINK_FORM2("道路形态2", "2206"),
OMDB_LINK_FORM2_1("IC", "2206-1"),
OMDB_LINK_FORM2_2("JCT", "2206-2"),
OMDB_LINK_FORM2_3("跨线地道", "2206-3"),
OMDB_LINK_FORM2_4("私道", "2206-4"),
OMDB_LINK_FORM2_5("步行街", "2206-5"),
OMDB_LINK_FORM2_6("公交专用道", "2206-6"),
OMDB_LINK_FORM2_7("POI 连接路", "2206-7"),
OMDB_LINK_FORM2_8("区域内道路", "2206-8"),
OMDB_LINK_FORM2_9("停车场出入口连接路", "2206-9"),
OMDB_LINK_FORM2_10("停车场内部虚拟连接路", "2206-10"),
OMDB_LINK_FORM2_11("风景路线", "2206-11"),
OMDB_LINK_FORM2_12("车辆测试路段", "2206-12"),
OMDB_LINK_FORM2_13("驾照考试路段", "2206-13"),
OMDB_INTERSECTION("路口", "4001"),
OMDB_SPEEDLIMIT("常规点限速", "4002"), OMDB_SPEEDLIMIT_COND(
"条件点限速",
"4003"
),
OMDB_SPEEDLIMIT_VAR("可变点限速", "4004"), OMDB_RESTRICTION("普通交限", "4006"),
OMDB_ELECTRONICEYE("电子眼", "4010"), OMDB_TRAFFICLIGHT(
"交通灯",
"4022"
),
OMDB_LANEINFO("车信", "4601"), OMDB_LANE_LINK_LG("车道中心线", "5001")
OMDB_SPEEDLIMIT("常规点限速", "4002"),
OMDB_SPEEDLIMIT_COND("条件点限速", "4003"),
OMDB_SPEEDLIMIT_VAR("可变点限速", "4004"),
OMDB_RESTRICTION("普通交限", "4006"),
OMDB_ELECTRONICEYE("电子眼", "4010"),
OMDB_TRAFFICLIGHT("交通灯", "4022"),
OMDB_LANEINFO("车信", "4601"),
OMDB_LANE_LINK_LG("车道中心线", "5001")
}