修改数据库查询bug导致交限数据不渲染

This commit is contained in:
squallzhjch 2023-08-22 10:09:19 +08:00
parent 95b0dd540f
commit 06f77dd1cd
6 changed files with 385 additions and 55 deletions

View File

@ -258,7 +258,7 @@ class RealmOperateHelper() {
val realm = getRealmDefaultInstance()
// 查询realm中对应tile号的数据
val realmList = getRealmTools(RenderEntity::class.java, false).and()
.notEqualTo("table", DataCodeEnum.OMDB_RD_LINK.tableName)
.notEqualTo("table", DataCodeEnum.OMDB_RD_LINK.name)
.and()
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd")
.findAll()
@ -288,7 +288,7 @@ class RealmOperateHelper() {
val result = mutableListOf<RenderEntity>()
val realm = getRealmDefaultInstance()
val realmList = getRealmTools(RenderEntity::class.java, false).and()
.notEqualTo("table", DataCodeEnum.OMDB_RD_LINK.tableName)
.notEqualTo("table", DataCodeEnum.OMDB_RD_LINK.name)
.and()
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and()
.findAll()

View File

@ -392,21 +392,23 @@ class MainActivity : BaseActivity() {
}
viewModel.liveDataItemList.observe(this) {
if (leftFragment == null || leftFragment !is ItemListFragment) {
leftFragment = ItemListFragment {
binding.mainActivityLeftFragment.visibility = View.GONE
supportFragmentManager.beginTransaction().remove(leftFragment!!).commit()
leftFragment = null
null
if(it.isNotEmpty()) {
if (leftFragment == null || leftFragment !is ItemListFragment) {
leftFragment = ItemListFragment {
binding.mainActivityLeftFragment.visibility = View.GONE
supportFragmentManager.beginTransaction().remove(leftFragment!!).commit()
leftFragment = null
null
}
binding.mainActivityLeftFragment.visibility = View.VISIBLE
supportFragmentManager.beginTransaction()
.replace(R.id.main_activity_left_fragment, leftFragment!!)
.commit()
} else {
supportFragmentManager.beginTransaction()
.show(leftFragment!!)
.commit()
}
binding.mainActivityLeftFragment.visibility = View.VISIBLE
supportFragmentManager.beginTransaction()
.replace(R.id.main_activity_left_fragment, leftFragment!!)
.commit()
} else {
supportFragmentManager.beginTransaction()
.show(leftFragment!!)
.commit()
}
}

View File

@ -610,7 +610,8 @@ class MainViewModel @Inject constructor(
val entity =
realmOperateHelper.getRealmTools(RenderEntity::class.java, true)
.and()
.equalTo("table", DataCodeEnum.OMDB_RESTRICTION.tableName).and()
.equalTo("table", DataCodeEnum.OMDB_RESTRICTION.name)
.and()
.equalTo(
"properties['linkIn']", it
).findFirst()
@ -619,7 +620,7 @@ class MainViewModel @Inject constructor(
val linkOutEntity =
realmOperateHelper.getRealmTools(RenderEntity::class.java, true)
.and()
.equalTo("table", DataCodeEnum.OMDB_RD_LINK.tableName).and()
.equalTo("table", DataCodeEnum.OMDB_RD_LINK.name).and()
.equalTo(
"properties['${RenderEntity.Companion.LinkTable.linkPid}']",
outLink

View File

@ -62,28 +62,14 @@ class SignMoreInfoFragment : BaseFragment() {
binding.signInfoRecyclerview.adapter = adapter
adapter.refreshData(SignUtil.getLaneBoundaryTypeInfo(it))
}
//可变点限速
DataCodeEnum.OMDB_LINK_SPEEDLIMIT_VAR.code -> {
val adapter = TwoItemAdapter()
DataCodeEnum.OMDB_INTERSECTION.code->{
val adapter = LaneBoundaryAdapter()
binding.signInfoRecyclerview.adapter = adapter
adapter.refreshData(SignUtil.getChangeLimitSpeedInfo(it))
}
//常规点限速
DataCodeEnum.OMDB_SPEEDLIMIT.code -> {
val adapter = TwoItemAdapter()
binding.signInfoRecyclerview.adapter = adapter
adapter.refreshData(SignUtil.getSpeedLimitMoreInfoText(it))
}
//条件点限速
DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> {
val adapter = TwoItemAdapter()
binding.signInfoRecyclerview.adapter = adapter
adapter.refreshData(SignUtil.getConditionLimitMoreInfoText(it))
adapter.refreshData(SignUtil.getIntersectionInfo(it))
}
//电子眼
DataCodeEnum.OMDB_ELECTRONICEYE.code
-> {
val drawable = resources.getDrawable(R.drawable.icon_electronic_eye_left, null);
DataCodeEnum.OMDB_ELECTRONICEYE.code -> {
val drawable = resources.getDrawable(R.drawable.icon_electronic_eye_left, null)
drawable.setBounds(
0,
0,
@ -98,7 +84,7 @@ class SignMoreInfoFragment : BaseFragment() {
adapter.refreshData(SignUtil.getElectronicEyeMoreInfo(it))
}
else -> {
val adapter = TwoItemAdapter()
val adapter = SignUtil.getMoreInfoAdapter(it)
binding.signInfoRecyclerview.adapter = adapter
}
}

View File

@ -8,6 +8,7 @@ import com.navinfo.omqs.bean.RoadNameBean
import com.navinfo.omqs.bean.SignBean
import com.navinfo.omqs.ui.activity.map.LaneInfoItem
import com.navinfo.omqs.ui.fragment.signMoreInfo.LaneBoundaryItem
import com.navinfo.omqs.ui.fragment.signMoreInfo.TwoItemAdapter
import com.navinfo.omqs.ui.fragment.signMoreInfo.TwoItemAdapterItem
import org.json.JSONArray
import org.json.JSONObject
@ -71,7 +72,7 @@ class SignUtil {
DataCodeEnum.OMDB_LINK_FORM2_11.code -> "风景路"
DataCodeEnum.OMDB_LINK_FORM2_12.code -> "测试路"
DataCodeEnum.OMDB_LINK_FORM2_13.code -> "驾考路"
DataCodeEnum.OMDB_VIADUCT.code->"高架"
DataCodeEnum.OMDB_VIADUCT.code -> "高架"
else -> ""
}
}
@ -239,11 +240,64 @@ class SignUtil {
}
}
/**
* 获取路口详细信息
*/
fun getIntersectionInfo(renderEntity: RenderEntity): List<LaneBoundaryItem> {
val list = mutableListOf<LaneBoundaryItem>()
list.add(
LaneBoundaryItem(
"路口号码",
"${renderEntity.properties["intersectionPid"]}",
null
)
)
val type = when (renderEntity.properties["type"]) {
"0" -> "简单路口"
"1" -> "复合路口"
else -> ""
}
list.add(LaneBoundaryItem("路口类型", type, null))
try {
val linkList = renderEntity.properties["linkList"]
if (linkList != null && linkList != "" && linkList != "null") {
val itemList = mutableListOf<TwoItemAdapterItem>()
val jsonArray = JSONArray(linkList)
for (i in 0 until jsonArray.length()) {
val arrayObject: JSONObject = jsonArray[i] as JSONObject
val direct = when (arrayObject.getInt("direct")) {
2 -> "顺方向"
3 -> "逆方向"
else -> ""
}
itemList.add(TwoItemAdapterItem("方向", direct))
val featureType = when (arrayObject.getInt("featureType")) {
1 -> "LINK"
2 -> "LINK PA"
else -> ""
}
itemList.add(TwoItemAdapterItem("要素类型", featureType))
list.add(
LaneBoundaryItem(
"车道标线序号${arrayObject.getInt("markSeqNum")}",
null,
itemList
)
)
}
}
} catch (e: Exception) {
}
return list
}
/**
* 获取车道边界类型详细信息
*/
fun getLaneBoundaryTypeInfo(renderEntity: RenderEntity): List<LaneBoundaryItem> {
val list = mutableListOf<LaneBoundaryItem>()
list.add(LaneBoundaryItem("车道边界线ID", "${renderEntity.properties["featurePid"]}", null))
@ -495,6 +549,26 @@ class SignUtil {
title = "最低限速值(km/h)", text = getSpeedLimitMinText(renderEntity)
)
)
val direct = renderEntity.properties["direct"]
var str = ""
if (direct == "2") {
str = "顺方向"
} else if (direct == "3") {
str = "逆方向"
}
if (str != "") {
list.add(TwoItemAdapterItem(title = "限速方向", text = str))
}
val speedFlag = renderEntity.properties["speedFlag"]
var flag = ""
if (speedFlag == "0") {
flag = "限速开始"
} else if (speedFlag == "1") {
flag = "限速解除"
}
if (flag != "") {
list.add(TwoItemAdapterItem(title = "限速标志", text = flag))
}
return list
}
@ -612,23 +686,37 @@ class SignUtil {
return R.drawable.icon_road_direction
}
private fun getRoadDirection(data: RenderEntity): Int {
try {
val direct = data.properties["direct"]
return when (direct!!.toInt()) {
0 -> R.drawable.icon_road_direction
1 -> R.drawable.icon_road_direction
2 -> R.drawable.icon_road_direction
3 -> R.drawable.icon_road_direction
-99 -> R.drawable.icon_road_direction
else -> R.drawable.icon_road_direction
}
} catch (e: Exception) {
Log.e("jingo", "获取道路方向面板ICON出错 $e")
/**
* 道路方向
*/
fun getRoadDirectionType(type: Int): String {
return when (type) {
0 -> "不应用"
1 -> "双方向"
2 -> "顺方向"
3 -> "逆方向"
-99 -> "参考PA"
else -> "未定义"
}
return R.drawable.icon_road_direction
}
// private fun getRoadDirection(data: RenderEntity): Int {
// try {
// val direct = data.properties["direct"]
// return when (direct!!.toInt()) {
// 0 -> R.drawable.icon_road_direction
// 1 -> R.drawable.icon_road_direction
// 2 -> R.drawable.icon_road_direction
// 3 -> R.drawable.icon_road_direction
// -99 -> R.drawable.icon_road_direction
// else -> R.drawable.icon_road_direction
// }
// } catch (e: Exception) {
// Log.e("jingo", "获取道路方向面板ICON出错 $e")
// }
// return R.drawable.icon_road_direction
// }
/**
* 获取道路播报语音文字
*/
@ -812,6 +900,26 @@ class SignUtil {
return stringBuffer.toString()
}
fun getKindType(kind: Int): String {
return when (kind) {
1 -> "高速道路"
2 -> "城市道路"
3 -> "国道"
4 -> "省道"
6 -> "县道"
7 -> "乡镇村道路"
8 -> "其他道路"
9 -> "非引导道路"
10 -> "步行道路"
11 -> "人渡"
13 -> "轮渡"
15 -> "自行车道路"
-99 -> "参考PA"
else -> "未定义"
}
}
/**
* 获取电子眼类型
*/
@ -922,5 +1030,238 @@ class SignUtil {
else -> 999
}
}
/**
* 获取更多信息
*/
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 -> {
val direction = data.properties["direction"]
var dir = ""
if (direction == "2") {
dir = "顺方向"
} else if (direction == "3") {
dir = "逆方向"
}
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
)
)
}
}
adapter.data = list
return adapter
}
}
}

2
vtm

@ -1 +1 @@
Subproject commit ebe23ed7731e301669b2b4ea03918e313a63617e
Subproject commit bd83adb7df464686b3f19e8a08aeef2cb49f5c17