增加道路属性,道路形态展示

This commit is contained in:
squallzhjch 2023-08-16 16:43:48 +08:00
parent f9b5c8a1d1
commit 51b9a398a4
5 changed files with 120 additions and 46 deletions

View File

@ -328,7 +328,7 @@ class MainViewModel @Inject constructor(
val realm = realmOperateHelper.getRealmDefaultInstance()
realm.executeTransaction {
val objects =
realmOperateHelper.getRealmTools(QsRecordBean::class.java,false).findAll()
realmOperateHelper.getRealmTools(QsRecordBean::class.java, false).findAll()
list = realm.copyFromRealm(objects)
}
mapController.markerHandle.removeAllQsMarker()
@ -345,7 +345,7 @@ class MainViewModel @Inject constructor(
var list = mutableListOf<NoteBean>()
val realm = realmOperateHelper.getRealmDefaultInstance()
realm.executeTransaction {
val objects = realmOperateHelper.getRealmTools(NoteBean::class.java,false).findAll()
val objects = realmOperateHelper.getRealmTools(NoteBean::class.java, false).findAll()
list = realm.copyFromRealm(objects)
}
@ -487,7 +487,7 @@ class MainViewModel @Inject constructor(
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
val linkList = realmOperateHelper.queryLink(point = point)
val linkList = realmOperateHelper.queryLink(point = point)
/* val linkList = realmOperateHelper.queryLine(
point = point,
@ -559,6 +559,26 @@ class MainViewModel @Inject constructor(
DataCodeEnum.OMDB_TUNNEL.code,//隧道
DataCodeEnum.OMDB_ROUNDABOUT.code,//环岛
DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code,//出入口
DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code,//辅路
DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code,//SA
DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code,//PA
DataCodeEnum.OMDB_LINK_FORM1_1.code,
DataCodeEnum.OMDB_LINK_FORM1_2.code,
DataCodeEnum.OMDB_LINK_FORM1_3.code,
DataCodeEnum.OMDB_LINK_FORM2_1.code,
DataCodeEnum.OMDB_LINK_FORM2_2.code,
DataCodeEnum.OMDB_LINK_FORM2_3.code,
DataCodeEnum.OMDB_LINK_FORM2_4.code,
DataCodeEnum.OMDB_LINK_FORM2_5.code,
DataCodeEnum.OMDB_LINK_FORM2_6.code,
DataCodeEnum.OMDB_LINK_FORM2_7.code,
DataCodeEnum.OMDB_LINK_FORM2_8.code,
DataCodeEnum.OMDB_LINK_FORM2_9.code,
DataCodeEnum.OMDB_LINK_FORM2_10.code,
DataCodeEnum.OMDB_LINK_FORM2_11.code,
DataCodeEnum.OMDB_LINK_FORM2_12.code,
DataCodeEnum.OMDB_LINK_FORM2_13.code,
DataCodeEnum.OMDB_VIADUCT.code,
-> topSignList.add(
signBean
)
@ -578,17 +598,23 @@ class MainViewModel @Inject constructor(
val realm = realmOperateHelper.getRealmDefaultInstance()
val entity = realmOperateHelper.getRealmTools(RenderEntity::class.java,true).and()
.equalTo("table", DataCodeEnum.OMDB_RESTRICTION.tableName).and().equalTo(
"properties['linkIn']", it
).findFirst()
val entity =
realmOperateHelper.getRealmTools(RenderEntity::class.java, true)
.and()
.equalTo("table", DataCodeEnum.OMDB_RESTRICTION.tableName).and()
.equalTo(
"properties['linkIn']", it
).findFirst()
if (entity != null) {
val outLink = entity.properties["linkOut"]
val linkOutEntity = realmOperateHelper.getRealmTools(RenderEntity::class.java,true).and()
.equalTo("table", DataCodeEnum.OMDB_RD_LINK.tableName).and().equalTo(
"properties['${RenderEntity.Companion.LinkTable.linkPid}']",
outLink
).findFirst()
val linkOutEntity =
realmOperateHelper.getRealmTools(RenderEntity::class.java, true)
.and()
.equalTo("table", DataCodeEnum.OMDB_RD_LINK.tableName).and()
.equalTo(
"properties['${RenderEntity.Companion.LinkTable.linkPid}']",
outLink
).findFirst()
if (linkOutEntity != null) {
mapController.lineHandler.linksLayer.addLine(
linkOutEntity.geometry, 0x7DFF0000

View File

@ -3,7 +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.collect.library.enums.DataCodeEnum
import com.navinfo.omqs.R
import com.navinfo.omqs.bean.SignBean
import com.navinfo.omqs.databinding.AdapterTopSignBinding
@ -28,7 +28,8 @@ class TopSignAdapter(private var itemListener: ((Int, SignBean) -> Unit?)? = nul
DataCodeEnum.OMDB_CON_ACCESS.code,
DataCodeEnum.OMDB_MULTI_DIGITIZED.code,
DataCodeEnum.OMDB_TUNNEL.code,
DataCodeEnum.OMDB_ROUNDABOUT.code
DataCodeEnum.OMDB_ROUNDABOUT.code,
DataCodeEnum.OMDB_VIADUCT.code,
-> bd.topSignName.text = ""
else -> bd.topSignName.text = item.name
}

View File

@ -51,7 +51,7 @@ class SignMoreInfoFragment : BaseFragment() {
when (it.code) {
//道路名
DataCodeEnum.OMDB_RD_LINK.code -> {
DataCodeEnum.OMDB_LINK_NAME.code -> {
val adapter = RoadNameInfoAdapter()
binding.signInfoRecyclerview.adapter = adapter
adapter.refreshData(SignUtil.getRoadNameList(it))

View File

@ -48,7 +48,30 @@ class SignUtil {
//环岛
DataCodeEnum.OMDB_ROUNDABOUT.code -> "环岛"
//主辅路出入口
DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code ->"道路属性"
DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code -> "出入口"
//辅路
DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code -> "辅路"
//SA
DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code -> "SA"
//PA
DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code -> "PA"
DataCodeEnum.OMDB_LINK_FORM1_1.code -> "U-T"
DataCodeEnum.OMDB_LINK_FORM1_2.code -> "提右"
DataCodeEnum.OMDB_LINK_FORM1_3.code -> "提左"
DataCodeEnum.OMDB_LINK_FORM2_1.code -> "IC"
DataCodeEnum.OMDB_LINK_FORM2_2.code -> "JCT"
DataCodeEnum.OMDB_LINK_FORM2_3.code -> "跨线地"
DataCodeEnum.OMDB_LINK_FORM2_4.code -> "私道"
DataCodeEnum.OMDB_LINK_FORM2_5.code -> "步行街"
DataCodeEnum.OMDB_LINK_FORM2_6.code -> "公交道"
DataCodeEnum.OMDB_LINK_FORM2_7.code -> "POI"
DataCodeEnum.OMDB_LINK_FORM2_8.code -> "区域内"
DataCodeEnum.OMDB_LINK_FORM2_9.code -> "P出入"
DataCodeEnum.OMDB_LINK_FORM2_10.code -> "P虚拟"
DataCodeEnum.OMDB_LINK_FORM2_11.code -> "风景路"
DataCodeEnum.OMDB_LINK_FORM2_12.code -> "测试路"
DataCodeEnum.OMDB_LINK_FORM2_13.code -> "驾考路"
DataCodeEnum.OMDB_VIADUCT.code->"高架"
else -> ""
}
}
@ -187,8 +210,31 @@ class SignUtil {
DataCodeEnum.OMDB_TUNNEL.code -> "隧道"
//环岛
DataCodeEnum.OMDB_ROUNDABOUT.code -> "环岛"
//主辅路出入口
DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code ->"出入口"
DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code,
DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code,
DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code,
DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code -> "道路属性"
DataCodeEnum.OMDB_LINK_FORM1_1.code,
DataCodeEnum.OMDB_LINK_FORM1_2.code,
DataCodeEnum.OMDB_LINK_FORM1_3.code,
DataCodeEnum.OMDB_LINK_FORM2_1.code,
DataCodeEnum.OMDB_LINK_FORM2_2.code,
DataCodeEnum.OMDB_LINK_FORM2_3.code,
DataCodeEnum.OMDB_LINK_FORM2_4.code,
DataCodeEnum.OMDB_LINK_FORM2_5.code,
DataCodeEnum.OMDB_LINK_FORM2_6.code,
DataCodeEnum.OMDB_LINK_FORM2_7.code,
DataCodeEnum.OMDB_LINK_FORM2_8.code,
DataCodeEnum.OMDB_LINK_FORM2_9.code,
DataCodeEnum.OMDB_LINK_FORM2_10.code,
DataCodeEnum.OMDB_LINK_FORM2_11.code,
DataCodeEnum.OMDB_LINK_FORM2_12.code,
DataCodeEnum.OMDB_LINK_FORM2_13.code -> "道路形态"
DataCodeEnum.OMDB_VIADUCT.code -> "高架"
else -> ""
}
}
@ -618,34 +664,32 @@ class SignUtil {
*/
fun getRoadNameList(data: RenderEntity): MutableList<RoadNameBean> {
val list = mutableListOf<RoadNameBean>()
if (data.code == "2011") {
try {
val shapeStr = data.properties["shapeList"]
val array = JSONArray(shapeStr)
for (i in 0 until array.length()) {
val jsonObject = array.getJSONObject(0)
val name = jsonObject.optString("name", "")
val type = jsonObject.optInt("nameType", 0)
val seqNum = jsonObject.optInt("seqNum", 1)
val nameClass = jsonObject.optInt("nameClass", 1)
val bean = RoadNameBean(
name = name, type = type, seqNum = seqNum, nameClass = nameClass
)
list.add(bean)
}
/**
* 排序
*/
list.sortWith { n1, n2 ->
if (n1.nameClass != n2.nameClass) {
n1.nameClass.compareTo(n2.nameClass)
} else {
n1.seqNum.compareTo(n2.seqNum)
}
}
} catch (e: Exception) {
try {
val shapeStr = data.properties["shapeList"]
val array = JSONArray(shapeStr)
for (i in 0 until array.length()) {
val jsonObject = array.getJSONObject(i)
val name = jsonObject.optString("name", "")
val type = jsonObject.optInt("nameType", 0)
val seqNum = jsonObject.optInt("seqNum", 1)
val nameClass = jsonObject.optInt("nameClass", 1)
val bean = RoadNameBean(
name = name, type = type, seqNum = seqNum, nameClass = nameClass
)
list.add(bean)
}
/**
* 排序
*/
list.sortWith { n1, n2 ->
if (n1.nameClass != n2.nameClass) {
n1.nameClass.compareTo(n2.nameClass)
} else {
n1.seqNum.compareTo(n2.seqNum)
}
}
} catch (e: Exception) {
}
return list
}

View File

@ -1,7 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:paddingBottom="5dp"
>
<TextView
android:id="@+id/title"