修改数据类型增加PA/SA要素编码处理

This commit is contained in:
qiji4215 2023-08-14 14:18:19 +08:00
parent f100578627
commit 08283761e0
12 changed files with 211 additions and 93 deletions

View File

@ -21,6 +21,21 @@
"zoomMin": 15, "zoomMin": 15,
"zoomMax": 17 "zoomMax": 17
}, },
"2004": {
"table": "OMDB_LINK_ATTRIBUTE",
"code": 2004,
"name": "道路属性",
"zoomMin": 15,
"zoomMax": 19,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateRoadText()"
}
]
},
"2008": { "2008": {
"table": "OMDB_RD_LINK_KIND", "table": "OMDB_RD_LINK_KIND",
"code": 2008, "code": 2008,
@ -139,14 +154,7 @@
"name": "隧道", "name": "隧道",
"zoomMin": 15, "zoomMin": 15,
"zoomMax": 20, "zoomMax": 20,
"transformer": [ "transformer2Code": ""
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateS2EReferencePoint()"
}
]
}, },
"4001": { "4001": {
"table": "OMDB_INTERSECTION", "table": "OMDB_INTERSECTION",

View File

@ -11,6 +11,7 @@ import com.google.gson.Gson
import com.google.gson.reflect.TypeToken import com.google.gson.reflect.TypeToken
import com.navinfo.collect.library.data.entity.RenderEntity import com.navinfo.collect.library.data.entity.RenderEntity
import com.navinfo.collect.library.data.entity.TaskBean import com.navinfo.collect.library.data.entity.TaskBean
import com.navinfo.collect.library.enum.DataCodeEnum
import com.navinfo.omqs.Constant import com.navinfo.omqs.Constant
import com.navinfo.omqs.bean.ImportConfig import com.navinfo.omqs.bean.ImportConfig
import com.navinfo.omqs.db.deep.LinkList import com.navinfo.omqs.db.deep.LinkList
@ -167,7 +168,7 @@ class ImportOMDBHelper @AssistedInject constructor(
// 先查询这个mesh下有没有数据如果有则跳过即可 // 先查询这个mesh下有没有数据如果有则跳过即可
// val meshEntity = Realm.getDefaultInstance().where(RenderEntity::class.java).equalTo("properties['mesh']", map["mesh"].toString()).findFirst() // val meshEntity = Realm.getDefaultInstance().where(RenderEntity::class.java).equalTo("properties['mesh']", map["mesh"].toString()).findFirst()
val renderEntity = RenderEntity() val renderEntity = RenderEntity()
renderEntity.code = map["qi_code"].toString().toInt() renderEntity.code = map["qi_code"].toString()
renderEntity.name = map["qi_name"].toString() renderEntity.name = map["qi_name"].toString()
renderEntity.table = map["qi_table"].toString() renderEntity.table = map["qi_table"].toString()
renderEntity.taskId = task.id renderEntity.taskId = task.id
@ -263,6 +264,24 @@ class ImportOMDBHelper @AssistedInject constructor(
renderEntity.enable = 2 renderEntity.enable = 2
Log.e("qj","${renderEntity.name}==不包括任务linkPid") Log.e("qj","${renderEntity.name}==不包括任务linkPid")
} }
//道路属性code编码需要特殊处理 存在多个属性值时渲染优先级SA>PA
if(renderEntity.table == "OMDB_LINK_ATTRIBUTE"){
var type = renderEntity.properties["SA"]
if(type!=null&&type=="1"){
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code
}else{
type = renderEntity.properties["PA"]
if(type!=null&&type=="1"){
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code
}else{//不满足条件时过滤该数据
continue
}
}
}
listResult.add(renderEntity) listResult.add(renderEntity)
// 对renderEntity做预处理后再保存 // 对renderEntity做预处理后再保存
val resultEntity = importConfig.transformProperties(renderEntity) val resultEntity = importConfig.transformProperties(renderEntity)

View File

@ -397,7 +397,7 @@ class ImportPreProcess {
"markingCount" to 1 "markingCount" to 1
) )
) )
if (renderEntity.code == 2013 && !renderEntity.properties["shapeList"].isNullOrEmpty() && renderEntity.properties["shapeList"] != "null") { if (renderEntity.code == "2013" && !renderEntity.properties["shapeList"].isNullOrEmpty() && renderEntity.properties["shapeList"] != "null") {
// 解析shapeList将数组中的属性放会properties // 解析shapeList将数组中的属性放会properties
val shapeList = JSONArray(renderEntity.properties["shapeList"]) val shapeList = JSONArray(renderEntity.properties["shapeList"])
for (i in 0 until shapeList.length()) { for (i in 0 until shapeList.length()) {
@ -416,7 +416,7 @@ class ImportPreProcess {
* 解析车信数据二级属性 * 解析车信数据二级属性
* */ * */
fun unpackingLaneInfo(renderEntity: RenderEntity) { fun unpackingLaneInfo(renderEntity: RenderEntity) {
if (renderEntity.code == 4601) { if (renderEntity.code == "4601") {
if (!renderEntity.properties["laneinfoGroup"].isNullOrEmpty() && renderEntity.properties["laneinfoGroup"] != "null") { if (!renderEntity.properties["laneinfoGroup"].isNullOrEmpty() && renderEntity.properties["laneinfoGroup"] != "null") {
// 解析laneinfoGroup将数组中的属性放会properties // 解析laneinfoGroup将数组中的属性放会properties
val laneinfoGroup = JSONArray( val laneinfoGroup = JSONArray(
@ -451,6 +451,20 @@ class ImportPreProcess {
} }
} }
/**
* 生成默认道路名数据
* */
fun generateRoadText(renderEntity: RenderEntity) {
// 根据类型进行文字转换
if (renderEntity.code != null) {
if(renderEntity.code=="2004-1"){
renderEntity.properties["name"] = "SA"
}else if(renderEntity.code=="2004-2"){
renderEntity.properties["name"] = "PA"
}
}
}
/** /**
* 生成默认道路名数据 * 生成默认道路名数据

View File

@ -34,7 +34,7 @@ interface ScProblemTypeDao {
suspend fun findClassTypeList(): List<ScProblemTypeBean>? suspend fun findClassTypeList(): List<ScProblemTypeBean>?
@Query("select DISTINCT CLASS_TYPE from ScProblemType where ELEMENT_CODE=:code") @Query("select DISTINCT CLASS_TYPE from ScProblemType where ELEMENT_CODE=:code")
suspend fun findClassTypeByCode(code: Int): String? suspend fun findClassTypeByCode(code: String): String?
/** /**
* 获取问题类型并去重 * 获取问题类型并去重

View File

@ -24,6 +24,7 @@ import androidx.navigation.findNavController
import com.blankj.utilcode.util.ToastUtils import com.blankj.utilcode.util.ToastUtils
import com.navinfo.collect.library.data.dao.impl.TraceDataBase import com.navinfo.collect.library.data.dao.impl.TraceDataBase
import com.navinfo.collect.library.data.entity.* import com.navinfo.collect.library.data.entity.*
import com.navinfo.collect.library.enum.DataCodeEnum
import com.navinfo.collect.library.garminvirbxe.HostBean import com.navinfo.collect.library.garminvirbxe.HostBean
import com.navinfo.collect.library.map.NIMapController import com.navinfo.collect.library.map.NIMapController
import com.navinfo.collect.library.map.OnGeoPointClickListener import com.navinfo.collect.library.map.OnGeoPointClickListener
@ -485,9 +486,13 @@ 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(point = point, buffer = 2.5, table = "OMDB_LANE_MARK_BOUNDARYTYPE") val linkList = realmOperateHelper.queryLine(
point = point,
buffer = 2.5,
table = "OMDB_LANE_MARK_BOUNDARYTYPE"
)
var hisRoadName = false var hisRoadName = false
@ -508,7 +513,7 @@ class MainViewModel @Inject constructor(
var elementList = realmOperateHelper.queryLinkByLinkPid(it) var elementList = realmOperateHelper.queryLinkByLinkPid(it)
for (element in elementList) { for (element in elementList) {
if (element.code == 2011) { if (element.code == "2011") {
hisRoadName = true hisRoadName = true
liveDataRoadName.postValue(element) liveDataRoadName.postValue(element)
continue continue
@ -532,11 +537,11 @@ class MainViewModel @Inject constructor(
Log.e("jingo", "捕捉到的数据code ${element.code}") Log.e("jingo", "捕捉到的数据code ${element.code}")
when (element.code) { when (element.code) {
//车道数,种别,功能等级,线限速,道路方向 //车道数,种别,功能等级,线限速,道路方向
2041, 2008, 2002, 2019, 2010 -> 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 -> topSignList.add(
signBean signBean
) )
4002, 4003, 4004, 4010, 4022, 4601 -> 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 signBean
) )
} }
@ -1052,7 +1057,8 @@ class MainViewModel @Inject constructor(
startTimer() startTimer()
} }
} else { } else {
Toast.makeText(mapController.mMapView.context, "无数据了!", Toast.LENGTH_LONG).show() Toast.makeText(mapController.mMapView.context, "无数据了!", Toast.LENGTH_LONG)
.show()
cancelTrace() cancelTrace()
} }
} }
@ -1099,13 +1105,13 @@ class MainViewModel @Inject constructor(
* 设置测量类型 0距离 2面积 3角度 * 设置测量类型 0距离 2面积 3角度
*/ */
fun setMeasuringToolType(type: MeasureLayerHandler.MEASURE_TYPE) { fun setMeasuringToolType(type: MeasureLayerHandler.MEASURE_TYPE) {
if(measuringType != type) { if (measuringType != type) {
measuringType = type measuringType = type
mapController.measureLayerHandler.clear() mapController.measureLayerHandler.clear()
} }
} }
fun click2Dor3D(){ fun click2Dor3D() {
viewModelScope.launch(Dispatchers.IO) { viewModelScope.launch(Dispatchers.IO) {
Log.e( Log.e(
"qj", "qj",
@ -1121,53 +1127,68 @@ class MainViewModel @Inject constructor(
* @param searchEnum 枚举类 * @param searchEnum 枚举类
* @param msg 搜索内容 * @param msg 搜索内容
*/ */
fun search(searchEnum: SearchEnum,msg:String,dialog:DialogInterface){ fun search(searchEnum: SearchEnum, msg: String, dialog: DialogInterface) {
if(searchEnum!=null&&msg.isNotEmpty()&&dialog!=null){ if (searchEnum != null && msg.isNotEmpty() && dialog != null) {
when (searchEnum) { when (searchEnum) {
SearchEnum.LINK -> { SearchEnum.LINK -> {
viewModelScope.launch(Dispatchers.IO) { viewModelScope.launch(Dispatchers.IO) {
val link = realmOperateHelper.queryLink(linkPid = msg) val link = realmOperateHelper.queryLink(linkPid = msg)
if(link!=null){ if (link != null) {
link?.let { l -> link?.let { l ->
mapController.lineHandler.showLine(l.geometry) mapController.lineHandler.showLine(l.geometry)
dialog.dismiss() dialog.dismiss()
} }
}else{ } else {
withContext(Dispatchers.Main){ withContext(Dispatchers.Main) {
Toast.makeText(mapController.mMapView.context, "未查询到数据", Toast.LENGTH_SHORT).show() Toast.makeText(
mapController.mMapView.context,
"未查询到数据",
Toast.LENGTH_SHORT
).show()
} }
} }
} }
} }
SearchEnum.MARK -> { SearchEnum.MARK -> {
viewModelScope.launch(Dispatchers.IO) { viewModelScope.launch(Dispatchers.IO) {
val qsRecordBean = realmOperateHelper.queryQcRecordBean(markId = msg) val qsRecordBean = realmOperateHelper.queryQcRecordBean(markId = msg)
if(qsRecordBean!=null){ if (qsRecordBean != null) {
qsRecordBean?.let { l -> qsRecordBean?.let { l ->
val naviController = (mapController.mMapView.context as Activity).findNavController(R.id.main_activity_right_fragment) val naviController =
(mapController.mMapView.context as Activity).findNavController(R.id.main_activity_right_fragment)
val bundle = Bundle() val bundle = Bundle()
bundle.putString("QsId", l.id) bundle.putString("QsId", l.id)
naviController.navigate(R.id.EvaluationResultFragment, bundle) naviController.navigate(R.id.EvaluationResultFragment, bundle)
ToastUtils.showLong(l.classType) ToastUtils.showLong(l.classType)
dialog.dismiss() dialog.dismiss()
} }
}else{ } else {
withContext(Dispatchers.Main){ withContext(Dispatchers.Main) {
Toast.makeText(mapController.mMapView.context, "未查询到数据", Toast.LENGTH_SHORT).show() Toast.makeText(
mapController.mMapView.context,
"未查询到数据",
Toast.LENGTH_SHORT
).show()
} }
} }
} }
} }
SearchEnum.LOCATION -> { SearchEnum.LOCATION -> {
val parts = msg.split("[,\\s]".toRegex()) val parts = msg.split("[,\\s]".toRegex())
if (parts.size == 2) { if (parts.size == 2) {
val x = parts[0].toDouble() val x = parts[0].toDouble()
val y = parts[1].toDouble() val y = parts[1].toDouble()
mapController.animationHandler.animationByLatLon(y, x) mapController.animationHandler.animationByLatLon(y, x)
mapController.markerHandle.addMarker(GeoPoint(y,x),"location") mapController.markerHandle.addMarker(GeoPoint(y, x), "location")
dialog.dismiss() dialog.dismiss()
} else { } else {
Toast.makeText(mapController.mMapView.context, "输入格式不正确", Toast.LENGTH_SHORT).show() Toast.makeText(
mapController.mMapView.context,
"输入格式不正确",
Toast.LENGTH_SHORT
).show()
} }
} }
} }

View File

@ -6,6 +6,7 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.ImageView import android.widget.ImageView
import com.navinfo.collect.library.enum.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.AdapterSignBinding import com.navinfo.omqs.databinding.AdapterSignBinding
@ -30,7 +31,7 @@ class SignAdapter(private var listener: OnSignAdapterClickListener?) :
private var selectMoreInfoTag: String = "" private var selectMoreInfoTag: String = ""
override fun getItemViewType(position: Int): Int { override fun getItemViewType(position: Int): Int {
if (data.isNotEmpty() && data[position].renderEntity.code == 4601) { if (data.isNotEmpty() && data[position].renderEntity.code == "4601") {
return 4601 return 4601
} }
return 0 return 0
@ -77,7 +78,7 @@ class SignAdapter(private var listener: OnSignAdapterClickListener?) :
bd.signMainInfo.visibility = View.GONE bd.signMainInfo.visibility = View.GONE
} }
bd.signSecondIcon.text = "" bd.signSecondIcon.text = ""
if (item.renderEntity.code == 4002) { if (item.renderEntity.code == DataCodeEnum.OMDB_SPEEDLIMIT.code) {
val minSpeed = SignUtil.getSpeedLimitMinText(item.renderEntity) val minSpeed = SignUtil.getSpeedLimitMinText(item.renderEntity)
if (minSpeed != "0") { if (minSpeed != "0") {
bd.signSecondIcon.text = minSpeed bd.signSecondIcon.text = minSpeed

View File

@ -180,7 +180,7 @@ class EvaluationResultViewModel @Inject constructor(
} }
} else { } else {
liveDataQsRecordBean.value?.run { liveDataQsRecordBean.value?.run {
elementId = bean.renderEntity.code.toString() elementId = bean.renderEntity.code
linkId = bean.linkId linkId = bean.linkId
if (linkId.isNotEmpty()) { if (linkId.isNotEmpty()) {
viewModelScope.launch { viewModelScope.launch {
@ -257,7 +257,7 @@ class EvaluationResultViewModel @Inject constructor(
if (classType2 != null) { if (classType2 != null) {
classType = classType2 classType = classType2
} }
classCode = bean.renderEntity.code.toString() classCode = bean.renderEntity.code
} }
//如果右侧栏没数据,给个默认值 //如果右侧栏没数据,给个默认值
if (liveDataQsRecordBean.value!!.classType.isEmpty()) { if (liveDataQsRecordBean.value!!.classType.isEmpty()) {

View File

@ -8,6 +8,7 @@ import androidx.fragment.app.activityViewModels
import androidx.navigation.findNavController import androidx.navigation.findNavController
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.navinfo.collect.library.data.entity.RenderEntity import com.navinfo.collect.library.data.entity.RenderEntity
import com.navinfo.collect.library.enum.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.FragmentSignInfoBinding import com.navinfo.omqs.databinding.FragmentSignInfoBinding
@ -50,37 +51,37 @@ class SignMoreInfoFragment : BaseFragment() {
when (it.code) { when (it.code) {
//道路名 //道路名
2011 -> { DataCodeEnum.OMDB_RD_LINK.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))
} }
//车道边界类型 //车道边界类型
2013 -> { DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code -> {
val adapter = LaneBoundaryAdapter() val adapter = LaneBoundaryAdapter()
binding.signInfoRecyclerview.adapter = adapter binding.signInfoRecyclerview.adapter = adapter
adapter.refreshData(SignUtil.getLaneBoundaryTypeInfo(it)) adapter.refreshData(SignUtil.getLaneBoundaryTypeInfo(it))
} }
//可变点限速 //可变点限速
2021 -> { DataCodeEnum.OMDB_LINK_SPEEDLIMIT_VAR.code -> {
val adapter = TwoItemAdapter() val adapter = TwoItemAdapter()
binding.signInfoRecyclerview.adapter = adapter binding.signInfoRecyclerview.adapter = adapter
adapter.refreshData(SignUtil.getChangeLimitSpeedInfo(it)) adapter.refreshData(SignUtil.getChangeLimitSpeedInfo(it))
} }
//常规点限速 //常规点限速
4002 -> { DataCodeEnum.OMDB_SPEEDLIMIT.code -> {
val adapter = TwoItemAdapter() val adapter = TwoItemAdapter()
binding.signInfoRecyclerview.adapter = adapter binding.signInfoRecyclerview.adapter = adapter
adapter.refreshData(SignUtil.getSpeedLimitMoreInfoText(it)) adapter.refreshData(SignUtil.getSpeedLimitMoreInfoText(it))
} }
//条件点限速 //条件点限速
4003 -> { DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> {
val adapter = TwoItemAdapter() val adapter = TwoItemAdapter()
binding.signInfoRecyclerview.adapter = adapter binding.signInfoRecyclerview.adapter = adapter
adapter.refreshData(SignUtil.getConditionLimitMoreInfoText(it)) adapter.refreshData(SignUtil.getConditionLimitMoreInfoText(it))
} }
//电子眼 //电子眼
4010 DataCodeEnum.OMDB_ELECTRONICEYE.code
-> { -> {
val drawable = resources.getDrawable(R.drawable.icon_electronic_eye_left, null); val drawable = resources.getDrawable(R.drawable.icon_electronic_eye_left, null);
drawable.setBounds( drawable.setBounds(

View File

@ -2,6 +2,7 @@ package com.navinfo.omqs.ui.widget
import android.util.Log import android.util.Log
import com.navinfo.collect.library.data.entity.RenderEntity import com.navinfo.collect.library.data.entity.RenderEntity
import com.navinfo.collect.library.enum.DataCodeEnum
import com.navinfo.omqs.R import com.navinfo.omqs.R
import com.navinfo.omqs.bean.RoadNameBean import com.navinfo.omqs.bean.RoadNameBean
import com.navinfo.omqs.bean.SignBean import com.navinfo.omqs.bean.SignBean
@ -21,17 +22,17 @@ class SignUtil {
fun getSignIconText(data: RenderEntity): String { fun getSignIconText(data: RenderEntity): String {
return when (data.code) { return when (data.code) {
//道路功能等级 //道路功能等级
2002 -> getLinkFunctionClassText(data) DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> getLinkFunctionClassText(data)
//道路种别 //道路种别
2008 -> getKindText(data) DataCodeEnum.OMDB_RD_LINK_KIND.code -> getKindText(data)
//道路方向 //道路方向
2010 -> getRoadDirectionText(data) DataCodeEnum.OMDB_LINK_DIRECT.code -> getRoadDirectionText(data)
//常规线限速 //常规线限速
2019 -> getLineSpeedLimitText(data) DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> getLineSpeedLimitText(data)
//车道数 //车道数
2041 -> getLaneNumText(data) DataCodeEnum.OMDB_LANE_NUM.code -> getLaneNumText(data)
//常规点限速,条件点限速 //常规点限速,条件点限速
4002, 4003 -> getSpeedLimitMaxText(data) DataCodeEnum.OMDB_SPEEDLIMIT.code, DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> getSpeedLimitMaxText(data)
else -> "" else -> ""
} }
} }
@ -77,31 +78,31 @@ class SignUtil {
fun getSignNameText(data: RenderEntity): String { fun getSignNameText(data: RenderEntity): String {
return when (data.code) { return when (data.code) {
//道路功能等级 //道路功能等级
2002 -> "功能等级" DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> "功能等级"
//道路种别 //道路种别
2008 -> "种别" DataCodeEnum.OMDB_RD_LINK_KIND.code -> "种别"
//道路方向 //道路方向
2010 -> "方向" DataCodeEnum.OMDB_LINK_DIRECT.code -> "方向"
//车道边界类型 //车道边界类型
2013 -> "车道边界类型" DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code -> "车道边界类型"
//常规线限速 //常规线限速
2019 -> "线限速" DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> "线限速"
//车道数 //车道数
2041 -> "车道数" DataCodeEnum.OMDB_LANE_NUM.code -> "车道数"
//常规点限速 //常规点限速
4002 -> "常规点限速" DataCodeEnum.OMDB_SPEEDLIMIT.code -> "常规点限速"
//常点限速 //常点限速
4003 -> "条件点限速" DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> "条件点限速"
//可变点限速 //可变点限速
4004 -> "可变点限速" DataCodeEnum.OMDB_SPEEDLIMIT_VAR.code -> "可变点限速"
//普通交限 //普通交限
4006 -> "普通交限" DataCodeEnum.OMDB_RESTRICTION.code -> "普通交限"
//电子眼 //电子眼
4010 -> "电子眼" DataCodeEnum.OMDB_ELECTRONICEYE.code -> "电子眼"
//交通灯 //交通灯
4022 -> "交通灯" DataCodeEnum.OMDB_TRAFFICLIGHT.code -> "交通灯"
//交限 //车信
4601 -> "车信" DataCodeEnum.OMDB_LANEINFO.code -> "车信"
else -> "" else -> ""
} }
} }
@ -203,9 +204,9 @@ class SignUtil {
return when (data.code) { return when (data.code) {
//条件点限速 //条件点限速
4003 -> getConditionLimitText(data) DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> getConditionLimitText(data)
//电子眼 //电子眼
4010 -> data.properties["name"].toString() DataCodeEnum.OMDB_ELECTRONICEYE.code -> data.properties["name"].toString()
else -> "" else -> ""
} }
} }
@ -394,15 +395,15 @@ class SignUtil {
// //车道数 // //车道数
// 2041 -> getLaneNumIcon(data) // 2041 -> getLaneNumIcon(data)
//普通点限速 //普通点限速
4002 -> getSpeedLimitIcon(data) DataCodeEnum.OMDB_SPEEDLIMIT.code -> getSpeedLimitIcon(data)
//条件点限速 //条件点限速
4003 -> getConditionalSpeedLimitIcon(data) DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> getConditionalSpeedLimitIcon(data)
//可变点限速 //可变点限速
4004 -> R.drawable.icon_change_limit DataCodeEnum.OMDB_SPEEDLIMIT_VAR.code -> R.drawable.icon_change_limit
//电子眼 //电子眼
4010 -> R.drawable.icon_electronic_eye DataCodeEnum.OMDB_ELECTRONICEYE.code -> R.drawable.icon_electronic_eye
//交通灯 //交通灯
4022 -> R.drawable.icon_traffic_light DataCodeEnum.OMDB_TRAFFICLIGHT.code -> R.drawable.icon_traffic_light
else -> 0 else -> 0
} }
@ -489,10 +490,10 @@ class SignUtil {
stringBuffer.append("当前道路") stringBuffer.append("当前道路")
for (item in topSignList) { for (item in topSignList) {
when (item.renderEntity.code) { when (item.renderEntity.code) {
2002 -> stringBuffer.append("功能等级${item.iconText.substring(2)}级,") DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> stringBuffer.append("功能等级${item.iconText.substring(2)}级,")
2008 -> stringBuffer.append("种别${item.iconText},") DataCodeEnum.OMDB_RD_LINK_KIND.code -> stringBuffer.append("种别${item.iconText},")
2010 -> stringBuffer.append("${item.iconText},") DataCodeEnum.OMDB_LINK_DIRECT.code -> stringBuffer.append("${item.iconText},")
2041 -> stringBuffer.append("${item.iconText.substringBefore("|")}车道") DataCodeEnum.OMDB_LANE_NUM.code -> stringBuffer.append("${item.iconText.substringBefore("|")}车道")
} }
} }
return stringBuffer.toString() return stringBuffer.toString()
@ -503,7 +504,7 @@ 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) { if (data.code == "2011") {
try { try {
val shapeStr = data.properties["shapeList"] val shapeStr = data.properties["shapeList"]
val array = JSONArray(shapeStr) val array = JSONArray(shapeStr)
@ -541,11 +542,11 @@ class SignUtil {
fun isMoreInfo(element: RenderEntity): Boolean { fun isMoreInfo(element: RenderEntity): Boolean {
val isMore = when (element.code) { val isMore = when (element.code) {
//常规点限速 //常规点限速
4002 -> getSpeedLimitMinText(element) != "0" DataCodeEnum.OMDB_SPEEDLIMIT.code -> getSpeedLimitMinText(element) != "0"
//条件点限速 //条件点限速
4003 -> true DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> true
//电子眼 //电子眼
4010 -> true DataCodeEnum.OMDB_ELECTRONICEYE.code -> true
else -> false else -> false
} }
return isMore return isMore
@ -755,11 +756,11 @@ class SignUtil {
*/ */
fun getRoadInfoIndex(element: RenderEntity): Int { fun getRoadInfoIndex(element: RenderEntity): Int {
return when (element.code) { return when (element.code) {
2041 -> 0 DataCodeEnum.OMDB_LANE_NUM.code -> 0
2008 -> 1 DataCodeEnum.OMDB_RD_LINK_KIND.code -> 1
2002 -> 2 DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> 2
2019 -> 3 DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> 3
2010 -> 4 DataCodeEnum.OMDB_LINK_DIRECT.code -> 4
else -> 999 else -> 999
} }
} }

View File

@ -2111,6 +2111,11 @@
</m>--> </m>-->
</m> </m>
<!-- 道路属性 -->
<m v="OMDB_LINK_ATTRIBUTE">
<text use="road" size="16"></text>
</m>
<!--常规点限速--> <!--常规点限速-->
<m v="OMDB_SPEEDLIMIT"> <m v="OMDB_SPEEDLIMIT">
<m k="speedFlag" v="0"> <m k="speedFlag" v="0">

View File

@ -24,7 +24,7 @@ open class RenderEntity() : RealmObject(), Parcelable {
var id: String = UUID.randomUUID().toString() // id var id: String = UUID.randomUUID().toString() // id
lateinit var name: String //要素名 lateinit var name: String //要素名
lateinit var table: String //要素表名 lateinit var table: String //要素表名
var code: Int = 0 // 要素编码 var code: String = "0" // 要素编码
var geometry: String = var geometry: String =
"" // 要素渲染参考的geometry该数据可能会在导入预处理环节被修改原始geometry会保存在properties的geometry字段下 "" // 要素渲染参考的geometry该数据可能会在导入预处理环节被修改原始geometry会保存在properties的geometry字段下
get() { get() {

View File

@ -0,0 +1,48 @@
package com.navinfo.collect.library.enum
/*
* 要素枚举定义
* */
enum class DataCodeEnum(var tableName: String, var code: String) {
OMDB_CHECKPOINT("检查点", "1012"), OMDB_RD_LINK(
"道路线",
"2001"
),
OMDB_RD_LINK_FUNCTION_CLASS("道路功能等级", "2002"),
OMDB_LINK_ATTRIBUTE_SA("道路属性-SA", "2004-1"), OMDB_LINK_ATTRIBUTE_PA(
"道路属性-PA",
"2004-2"
),
OMDB_RD_LINK_KIND("道路种别", "2008"),
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_VAR("可变线限速", "2021"),
OMDB_CON_ACCESS("全封闭", "2022"), OMDB_FORM_OF_WAY(
"匝道",
"2037"
),
OMDB_MULTI_DIGITIZED("上下线分离", "2040"), OMDB_LANE_NUM("车道数", "2041"),
OMDB_RDBOUND_BOUNDARYTYPE("道路边界类型", "2083"), OMDB_BRIDGE(
"",
"2201"
),
OMDB_TUNNEL("隧道", "2202"), 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")
}