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

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() val realm = realmOperateHelper.getRealmDefaultInstance()
realm.executeTransaction { realm.executeTransaction {
val objects = val objects =
realmOperateHelper.getRealmTools(QsRecordBean::class.java,false).findAll() realmOperateHelper.getRealmTools(QsRecordBean::class.java, false).findAll()
list = realm.copyFromRealm(objects) list = realm.copyFromRealm(objects)
} }
mapController.markerHandle.removeAllQsMarker() mapController.markerHandle.removeAllQsMarker()
@ -345,7 +345,7 @@ class MainViewModel @Inject constructor(
var list = mutableListOf<NoteBean>() var list = mutableListOf<NoteBean>()
val realm = realmOperateHelper.getRealmDefaultInstance() val realm = realmOperateHelper.getRealmDefaultInstance()
realm.executeTransaction { realm.executeTransaction {
val objects = realmOperateHelper.getRealmTools(NoteBean::class.java,false).findAll() val objects = realmOperateHelper.getRealmTools(NoteBean::class.java, false).findAll()
list = realm.copyFromRealm(objects) list = realm.copyFromRealm(objects)
} }
@ -487,7 +487,7 @@ class MainViewModel @Inject constructor(
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { 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( /* val linkList = realmOperateHelper.queryLine(
point = point, point = point,
@ -559,6 +559,26 @@ class MainViewModel @Inject constructor(
DataCodeEnum.OMDB_TUNNEL.code,//隧道 DataCodeEnum.OMDB_TUNNEL.code,//隧道
DataCodeEnum.OMDB_ROUNDABOUT.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,//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( -> topSignList.add(
signBean signBean
) )
@ -578,17 +598,23 @@ class MainViewModel @Inject constructor(
val realm = realmOperateHelper.getRealmDefaultInstance() val realm = realmOperateHelper.getRealmDefaultInstance()
val entity = realmOperateHelper.getRealmTools(RenderEntity::class.java,true).and() val entity =
.equalTo("table", DataCodeEnum.OMDB_RESTRICTION.tableName).and().equalTo( realmOperateHelper.getRealmTools(RenderEntity::class.java, true)
"properties['linkIn']", it .and()
).findFirst() .equalTo("table", DataCodeEnum.OMDB_RESTRICTION.tableName).and()
.equalTo(
"properties['linkIn']", it
).findFirst()
if (entity != null) { if (entity != null) {
val outLink = entity.properties["linkOut"] val outLink = entity.properties["linkOut"]
val linkOutEntity = realmOperateHelper.getRealmTools(RenderEntity::class.java,true).and() val linkOutEntity =
.equalTo("table", DataCodeEnum.OMDB_RD_LINK.tableName).and().equalTo( realmOperateHelper.getRealmTools(RenderEntity::class.java, true)
"properties['${RenderEntity.Companion.LinkTable.linkPid}']", .and()
outLink .equalTo("table", DataCodeEnum.OMDB_RD_LINK.tableName).and()
).findFirst() .equalTo(
"properties['${RenderEntity.Companion.LinkTable.linkPid}']",
outLink
).findFirst()
if (linkOutEntity != null) { if (linkOutEntity != null) {
mapController.lineHandler.linksLayer.addLine( mapController.lineHandler.linksLayer.addLine(
linkOutEntity.geometry, 0x7DFF0000 linkOutEntity.geometry, 0x7DFF0000

View File

@ -3,7 +3,7 @@ package com.navinfo.omqs.ui.activity.map
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup 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.R
import com.navinfo.omqs.bean.SignBean import com.navinfo.omqs.bean.SignBean
import com.navinfo.omqs.databinding.AdapterTopSignBinding 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_CON_ACCESS.code,
DataCodeEnum.OMDB_MULTI_DIGITIZED.code, DataCodeEnum.OMDB_MULTI_DIGITIZED.code,
DataCodeEnum.OMDB_TUNNEL.code, DataCodeEnum.OMDB_TUNNEL.code,
DataCodeEnum.OMDB_ROUNDABOUT.code DataCodeEnum.OMDB_ROUNDABOUT.code,
DataCodeEnum.OMDB_VIADUCT.code,
-> bd.topSignName.text = "" -> bd.topSignName.text = ""
else -> bd.topSignName.text = item.name else -> bd.topSignName.text = item.name
} }

View File

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

View File

@ -48,7 +48,30 @@ class SignUtil {
//环岛 //环岛
DataCodeEnum.OMDB_ROUNDABOUT.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 -> "辅路"
//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 -> "" else -> ""
} }
} }
@ -187,8 +210,31 @@ class SignUtil {
DataCodeEnum.OMDB_TUNNEL.code -> "隧道" DataCodeEnum.OMDB_TUNNEL.code -> "隧道"
//环岛 //环岛
DataCodeEnum.OMDB_ROUNDABOUT.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 -> "" else -> ""
} }
} }
@ -618,34 +664,32 @@ class SignUtil {
*/ */
fun getRoadNameList(data: RenderEntity): MutableList<RoadNameBean> { fun getRoadNameList(data: RenderEntity): MutableList<RoadNameBean> {
val list = mutableListOf<RoadNameBean>() val list = mutableListOf<RoadNameBean>()
if (data.code == "2011") { try {
try { val shapeStr = data.properties["shapeList"]
val shapeStr = data.properties["shapeList"] val array = JSONArray(shapeStr)
val array = JSONArray(shapeStr) for (i in 0 until array.length()) {
for (i in 0 until array.length()) { val jsonObject = array.getJSONObject(i)
val jsonObject = array.getJSONObject(0) val name = jsonObject.optString("name", "")
val name = jsonObject.optString("name", "") val type = jsonObject.optInt("nameType", 0)
val type = jsonObject.optInt("nameType", 0) val seqNum = jsonObject.optInt("seqNum", 1)
val seqNum = jsonObject.optInt("seqNum", 1) val nameClass = jsonObject.optInt("nameClass", 1)
val nameClass = jsonObject.optInt("nameClass", 1) val bean = RoadNameBean(
val bean = RoadNameBean( name = name, type = type, seqNum = seqNum, nameClass = nameClass
name = name, type = type, seqNum = seqNum, nameClass = nameClass )
) list.add(bean)
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) {
} }
/**
* 排序
*/
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 return list
} }

View File

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