From 08283761e07206a1fc3ec2ad3db59793b182af9b Mon Sep 17 00:00:00 2001 From: qiji4215 Date: Mon, 14 Aug 2023 14:18:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=A2=9E=E5=8A=A0PA/SA=E8=A6=81=E7=B4=A0=E7=BC=96?= =?UTF-8?q?=E7=A0=81=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/assets/omdb_config.json | 24 ++++-- .../com/navinfo/omqs/db/ImportOMDBHelper.kt | 21 ++++- .../com/navinfo/omqs/db/ImportPreProcess.kt | 18 ++++- .../navinfo/omqs/db/dao/ScProblemTypeDao.kt | 2 +- .../omqs/ui/activity/map/MainViewModel.kt | 81 ++++++++++++------- .../omqs/ui/activity/map/SignAdapter.kt | 5 +- .../EvaluationResultViewModel.kt | 4 +- .../signMoreInfo/SignMoreInfoFragment.kt | 13 +-- .../com/navinfo/omqs/ui/widget/SignUtil.kt | 81 ++++++++++--------- .../src/main/assets/editormarker.xml | 5 ++ .../library/data/entity/RenderEntity.kt | 2 +- .../collect/library/enum/DataCodeEnum.kt | 48 +++++++++++ 12 files changed, 211 insertions(+), 93 deletions(-) create mode 100644 collect-library/src/main/java/com/navinfo/collect/library/enum/DataCodeEnum.kt diff --git a/app/src/main/assets/omdb_config.json b/app/src/main/assets/omdb_config.json index 9d2a0bf8..a7f5a8e2 100644 --- a/app/src/main/assets/omdb_config.json +++ b/app/src/main/assets/omdb_config.json @@ -21,6 +21,21 @@ "zoomMin": 15, "zoomMax": 17 }, + "2004": { + "table": "OMDB_LINK_ATTRIBUTE", + "code": 2004, + "name": "道路属性", + "zoomMin": 15, + "zoomMax": 19, + "transformer": [ + { + "k": "geometry", + "v": "~", + "klib": "geometry", + "vlib": "generateRoadText()" + } + ] + }, "2008": { "table": "OMDB_RD_LINK_KIND", "code": 2008, @@ -139,14 +154,7 @@ "name": "隧道", "zoomMin": 15, "zoomMax": 20, - "transformer": [ - { - "k": "geometry", - "v": "~", - "klib": "geometry", - "vlib": "generateS2EReferencePoint()" - } - ] + "transformer2Code": "" }, "4001": { "table": "OMDB_INTERSECTION", diff --git a/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt b/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt index 75584da7..0de7cbab 100644 --- a/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt +++ b/app/src/main/java/com/navinfo/omqs/db/ImportOMDBHelper.kt @@ -11,6 +11,7 @@ import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.navinfo.collect.library.data.entity.RenderEntity import com.navinfo.collect.library.data.entity.TaskBean +import com.navinfo.collect.library.enum.DataCodeEnum import com.navinfo.omqs.Constant import com.navinfo.omqs.bean.ImportConfig import com.navinfo.omqs.db.deep.LinkList @@ -167,7 +168,7 @@ class ImportOMDBHelper @AssistedInject constructor( // 先查询这个mesh下有没有数据,如果有则跳过即可 // val meshEntity = Realm.getDefaultInstance().where(RenderEntity::class.java).equalTo("properties['mesh']", map["mesh"].toString()).findFirst() val renderEntity = RenderEntity() - renderEntity.code = map["qi_code"].toString().toInt() + renderEntity.code = map["qi_code"].toString() renderEntity.name = map["qi_name"].toString() renderEntity.table = map["qi_table"].toString() renderEntity.taskId = task.id @@ -263,6 +264,24 @@ class ImportOMDBHelper @AssistedInject constructor( renderEntity.enable = 2 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) // 对renderEntity做预处理后再保存 val resultEntity = importConfig.transformProperties(renderEntity) diff --git a/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt b/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt index cd90dfad..8c585df2 100644 --- a/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt +++ b/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt @@ -397,7 +397,7 @@ class ImportPreProcess { "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 val shapeList = JSONArray(renderEntity.properties["shapeList"]) for (i in 0 until shapeList.length()) { @@ -416,7 +416,7 @@ class ImportPreProcess { * 解析车信数据二级属性 * */ fun unpackingLaneInfo(renderEntity: RenderEntity) { - if (renderEntity.code == 4601) { + if (renderEntity.code == "4601") { if (!renderEntity.properties["laneinfoGroup"].isNullOrEmpty() && renderEntity.properties["laneinfoGroup"] != "null") { // 解析laneinfoGroup,将数组中的属性放会properties 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" + } + } + } + /** * 生成默认道路名数据 diff --git a/app/src/main/java/com/navinfo/omqs/db/dao/ScProblemTypeDao.kt b/app/src/main/java/com/navinfo/omqs/db/dao/ScProblemTypeDao.kt index 3940ed99..89197c7c 100644 --- a/app/src/main/java/com/navinfo/omqs/db/dao/ScProblemTypeDao.kt +++ b/app/src/main/java/com/navinfo/omqs/db/dao/ScProblemTypeDao.kt @@ -34,7 +34,7 @@ interface ScProblemTypeDao { suspend fun findClassTypeList(): List? @Query("select DISTINCT CLASS_TYPE from ScProblemType where ELEMENT_CODE=:code") - suspend fun findClassTypeByCode(code: Int): String? + suspend fun findClassTypeByCode(code: String): String? /** * 获取问题类型,并去重 diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt index de508611..0bde4c92 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt @@ -24,6 +24,7 @@ import androidx.navigation.findNavController import com.blankj.utilcode.util.ToastUtils import com.navinfo.collect.library.data.dao.impl.TraceDataBase 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.map.NIMapController import com.navinfo.collect.library.map.OnGeoPointClickListener @@ -485,9 +486,13 @@ 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, 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 @@ -508,7 +513,7 @@ class MainViewModel @Inject constructor( var elementList = realmOperateHelper.queryLinkByLinkPid(it) for (element in elementList) { - if (element.code == 2011) { + if (element.code == "2011") { hisRoadName = true liveDataRoadName.postValue(element) continue @@ -532,11 +537,11 @@ class MainViewModel @Inject constructor( Log.e("jingo", "捕捉到的数据code ${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 ) - 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 ) } @@ -1052,7 +1057,8 @@ class MainViewModel @Inject constructor( startTimer() } } else { - Toast.makeText(mapController.mMapView.context, "无数据了!", Toast.LENGTH_LONG).show() + Toast.makeText(mapController.mMapView.context, "无数据了!", Toast.LENGTH_LONG) + .show() cancelTrace() } } @@ -1099,13 +1105,13 @@ class MainViewModel @Inject constructor( * 设置测量类型 0:距离 2:面积 3:角度 */ fun setMeasuringToolType(type: MeasureLayerHandler.MEASURE_TYPE) { - if(measuringType != type) { + if (measuringType != type) { measuringType = type mapController.measureLayerHandler.clear() } } - fun click2Dor3D(){ + fun click2Dor3D() { viewModelScope.launch(Dispatchers.IO) { Log.e( "qj", @@ -1121,53 +1127,68 @@ class MainViewModel @Inject constructor( * @param searchEnum 枚举类 * @param msg 搜索内容 */ - fun search(searchEnum: SearchEnum,msg:String,dialog:DialogInterface){ - if(searchEnum!=null&&msg.isNotEmpty()&&dialog!=null){ + fun search(searchEnum: SearchEnum, msg: String, dialog: DialogInterface) { + if (searchEnum != null && msg.isNotEmpty() && dialog != null) { when (searchEnum) { SearchEnum.LINK -> { - viewModelScope.launch(Dispatchers.IO) { - val link = realmOperateHelper.queryLink(linkPid = msg) - if(link!=null){ - link?.let { l -> - mapController.lineHandler.showLine(l.geometry) - dialog.dismiss() - } - }else{ - withContext(Dispatchers.Main){ - Toast.makeText(mapController.mMapView.context, "未查询到数据", Toast.LENGTH_SHORT).show() - } - } - } + viewModelScope.launch(Dispatchers.IO) { + val link = realmOperateHelper.queryLink(linkPid = msg) + if (link != null) { + link?.let { l -> + mapController.lineHandler.showLine(l.geometry) + dialog.dismiss() + } + } else { + withContext(Dispatchers.Main) { + Toast.makeText( + mapController.mMapView.context, + "未查询到数据", + Toast.LENGTH_SHORT + ).show() + } + } + } } + SearchEnum.MARK -> { viewModelScope.launch(Dispatchers.IO) { val qsRecordBean = realmOperateHelper.queryQcRecordBean(markId = msg) - if(qsRecordBean!=null){ + if (qsRecordBean != null) { 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() bundle.putString("QsId", l.id) naviController.navigate(R.id.EvaluationResultFragment, bundle) ToastUtils.showLong(l.classType) dialog.dismiss() } - }else{ - withContext(Dispatchers.Main){ - Toast.makeText(mapController.mMapView.context, "未查询到数据", Toast.LENGTH_SHORT).show() + } else { + withContext(Dispatchers.Main) { + Toast.makeText( + mapController.mMapView.context, + "未查询到数据", + Toast.LENGTH_SHORT + ).show() } } } } + SearchEnum.LOCATION -> { val parts = msg.split("[,,\\s]".toRegex()) if (parts.size == 2) { val x = parts[0].toDouble() val y = parts[1].toDouble() mapController.animationHandler.animationByLatLon(y, x) - mapController.markerHandle.addMarker(GeoPoint(y,x),"location") + mapController.markerHandle.addMarker(GeoPoint(y, x), "location") dialog.dismiss() } else { - Toast.makeText(mapController.mMapView.context, "输入格式不正确", Toast.LENGTH_SHORT).show() + Toast.makeText( + mapController.mMapView.context, + "输入格式不正确", + Toast.LENGTH_SHORT + ).show() } } } diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt index 5ba63474..6bc84eae 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt @@ -6,6 +6,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ImageView +import com.navinfo.collect.library.enum.DataCodeEnum import com.navinfo.omqs.R import com.navinfo.omqs.bean.SignBean import com.navinfo.omqs.databinding.AdapterSignBinding @@ -30,7 +31,7 @@ class SignAdapter(private var listener: OnSignAdapterClickListener?) : private var selectMoreInfoTag: String = "" 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 0 @@ -77,7 +78,7 @@ class SignAdapter(private var listener: OnSignAdapterClickListener?) : bd.signMainInfo.visibility = View.GONE } bd.signSecondIcon.text = "" - if (item.renderEntity.code == 4002) { + if (item.renderEntity.code == DataCodeEnum.OMDB_SPEEDLIMIT.code) { val minSpeed = SignUtil.getSpeedLimitMinText(item.renderEntity) if (minSpeed != "0") { bd.signSecondIcon.text = minSpeed diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt index a7a7add1..b4a9ce2e 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt @@ -180,7 +180,7 @@ class EvaluationResultViewModel @Inject constructor( } } else { liveDataQsRecordBean.value?.run { - elementId = bean.renderEntity.code.toString() + elementId = bean.renderEntity.code linkId = bean.linkId if (linkId.isNotEmpty()) { viewModelScope.launch { @@ -257,7 +257,7 @@ class EvaluationResultViewModel @Inject constructor( if (classType2 != null) { classType = classType2 } - classCode = bean.renderEntity.code.toString() + classCode = bean.renderEntity.code } //如果右侧栏没数据,给个默认值 if (liveDataQsRecordBean.value!!.classType.isEmpty()) { diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/signMoreInfo/SignMoreInfoFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/signMoreInfo/SignMoreInfoFragment.kt index 67d73a25..df95a94a 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/signMoreInfo/SignMoreInfoFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/signMoreInfo/SignMoreInfoFragment.kt @@ -8,6 +8,7 @@ import androidx.fragment.app.activityViewModels import androidx.navigation.findNavController import androidx.recyclerview.widget.LinearLayoutManager import com.navinfo.collect.library.data.entity.RenderEntity +import com.navinfo.collect.library.enum.DataCodeEnum import com.navinfo.omqs.R import com.navinfo.omqs.bean.SignBean import com.navinfo.omqs.databinding.FragmentSignInfoBinding @@ -50,37 +51,37 @@ class SignMoreInfoFragment : BaseFragment() { when (it.code) { //道路名 - 2011 -> { + DataCodeEnum.OMDB_RD_LINK.code -> { val adapter = RoadNameInfoAdapter() binding.signInfoRecyclerview.adapter = adapter adapter.refreshData(SignUtil.getRoadNameList(it)) } //车道边界类型 - 2013 -> { + DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code -> { val adapter = LaneBoundaryAdapter() binding.signInfoRecyclerview.adapter = adapter adapter.refreshData(SignUtil.getLaneBoundaryTypeInfo(it)) } //可变点限速 - 2021 -> { + DataCodeEnum.OMDB_LINK_SPEEDLIMIT_VAR.code -> { val adapter = TwoItemAdapter() binding.signInfoRecyclerview.adapter = adapter adapter.refreshData(SignUtil.getChangeLimitSpeedInfo(it)) } //常规点限速 - 4002 -> { + DataCodeEnum.OMDB_SPEEDLIMIT.code -> { val adapter = TwoItemAdapter() binding.signInfoRecyclerview.adapter = adapter adapter.refreshData(SignUtil.getSpeedLimitMoreInfoText(it)) } //条件点限速 - 4003 -> { + DataCodeEnum.OMDB_SPEEDLIMIT_COND.code -> { val adapter = TwoItemAdapter() binding.signInfoRecyclerview.adapter = adapter adapter.refreshData(SignUtil.getConditionLimitMoreInfoText(it)) } //电子眼 - 4010 + DataCodeEnum.OMDB_ELECTRONICEYE.code -> { val drawable = resources.getDrawable(R.drawable.icon_electronic_eye_left, null); drawable.setBounds( diff --git a/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt b/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt index f0b50afc..9d1facf1 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt @@ -2,6 +2,7 @@ package com.navinfo.omqs.ui.widget import android.util.Log import com.navinfo.collect.library.data.entity.RenderEntity +import com.navinfo.collect.library.enum.DataCodeEnum import com.navinfo.omqs.R import com.navinfo.omqs.bean.RoadNameBean import com.navinfo.omqs.bean.SignBean @@ -21,17 +22,17 @@ class SignUtil { fun getSignIconText(data: RenderEntity): String { 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 -> "" } } @@ -77,31 +78,31 @@ class SignUtil { fun getSignNameText(data: RenderEntity): String { 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 -> "交通灯" - //交限 - 4601 -> "车信" + DataCodeEnum.OMDB_TRAFFICLIGHT.code -> "交通灯" + //车信 + DataCodeEnum.OMDB_LANEINFO.code -> "车信" else -> "" } } @@ -203,9 +204,9 @@ class SignUtil { 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 -> "" } } @@ -394,15 +395,15 @@ class SignUtil { // //车道数 // 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 } @@ -489,10 +490,10 @@ class SignUtil { stringBuffer.append("当前道路") for (item in topSignList) { when (item.renderEntity.code) { - 2002 -> stringBuffer.append("功能等级${item.iconText.substring(2)}级,") - 2008 -> stringBuffer.append("种别${item.iconText},") - 2010 -> stringBuffer.append("${item.iconText},") - 2041 -> stringBuffer.append("${item.iconText.substringBefore("|")}车道") + 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("|")}车道") } } return stringBuffer.toString() @@ -503,7 +504,7 @@ class SignUtil { */ fun getRoadNameList(data: RenderEntity): MutableList { val list = mutableListOf() - if (data.code == 2011) { + if (data.code == "2011") { try { val shapeStr = data.properties["shapeList"] val array = JSONArray(shapeStr) @@ -541,11 +542,11 @@ class SignUtil { fun isMoreInfo(element: RenderEntity): Boolean { 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 } return isMore @@ -755,11 +756,11 @@ class SignUtil { */ fun getRoadInfoIndex(element: RenderEntity): Int { return when (element.code) { - 2041 -> 0 - 2008 -> 1 - 2002 -> 2 - 2019 -> 3 - 2010 -> 4 + DataCodeEnum.OMDB_LANE_NUM.code -> 0 + DataCodeEnum.OMDB_RD_LINK_KIND.code -> 1 + DataCodeEnum.OMDB_RD_LINK_FUNCTION_CLASS.code -> 2 + DataCodeEnum.OMDB_LINK_SPEEDLIMIT.code -> 3 + DataCodeEnum.OMDB_LINK_DIRECT.code -> 4 else -> 999 } } diff --git a/collect-library/src/main/assets/editormarker.xml b/collect-library/src/main/assets/editormarker.xml index 20ce4cdb..f78594ff 100644 --- a/collect-library/src/main/assets/editormarker.xml +++ b/collect-library/src/main/assets/editormarker.xml @@ -2111,6 +2111,11 @@ --> + + + + + diff --git a/collect-library/src/main/java/com/navinfo/collect/library/data/entity/RenderEntity.kt b/collect-library/src/main/java/com/navinfo/collect/library/data/entity/RenderEntity.kt index 49594be9..df1dc506 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/data/entity/RenderEntity.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/data/entity/RenderEntity.kt @@ -24,7 +24,7 @@ open class RenderEntity() : RealmObject(), Parcelable { var id: String = UUID.randomUUID().toString() // id lateinit var name: String //要素名 lateinit var table: String //要素表名 - var code: Int = 0 // 要素编码 + var code: String = "0" // 要素编码 var geometry: String = "" // 要素渲染参考的geometry,该数据可能会在导入预处理环节被修改,原始geometry会保存在properties的geometry字段下 get() { diff --git a/collect-library/src/main/java/com/navinfo/collect/library/enum/DataCodeEnum.kt b/collect-library/src/main/java/com/navinfo/collect/library/enum/DataCodeEnum.kt new file mode 100644 index 00000000..4d9c390c --- /dev/null +++ b/collect-library/src/main/java/com/navinfo/collect/library/enum/DataCodeEnum.kt @@ -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") +} +