Merge branch 'master' of gitlab.navinfo.com:CollectVehicle/OneMapQS

 Conflicts:
	app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt
	app/src/main/java/com/navinfo/omqs/ui/widget/SignUtil.kt
	vtm
This commit is contained in:
squallzhjch 2023-08-15 09:52:48 +08:00
commit f7843baabe
13 changed files with 472 additions and 89 deletions

View File

@ -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,
@ -96,7 +111,7 @@
"name": "全封闭"
},
"2037": {
"table": "OMDB_FORM_OF_WAY",
"table": "OMDB_TAMP",
"code": 2037,
"name": "匝道"
},
@ -139,14 +154,31 @@
"name": "隧道",
"zoomMin": 15,
"zoomMax": 20,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generateS2EReferencePoint()"
}
]
"transformer2Code": ""
},
"2204":{
"table": "OMDB_RoundAbout",
"code": 2204,
"name": "环岛",
"zoomMin": 15,
"zoomMax": 17,
"transformer2Code": ""
},
"2205":{
"table": "OMDB_LINK_FORM1",
"code": 2205,
"name": "道路形态1",
"zoomMin": 15,
"zoomMax": 17,
"transformer2Code": ""
},
"2206":{
"table": "OMDB_LINK_FORM2",
"code": 2206,
"name": "道路形态2",
"zoomMin": 15,
"zoomMax": 17,
"transformer2Code": ""
},
"4001": {
"table": "OMDB_INTERSECTION",

View File

@ -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
@ -208,7 +209,7 @@ class ImportOMDBHelper @AssistedInject constructor(
}
}
}else if(renderEntity.table == "OMDB_RESTRICTION" && renderEntity.properties.containsKey("linkIn")){
}else if(renderEntity.code == DataCodeEnum.OMDB_RESTRICTION.code && renderEntity.properties.containsKey("linkIn")){
if (renderEntity.properties["linkIn"] != null) {
@ -225,7 +226,7 @@ class ImportOMDBHelper @AssistedInject constructor(
}
}
}
}else if(renderEntity.table == "OMDB_INTERSECTION" && renderEntity.properties.containsKey("linkList")){
}else if(renderEntity.code == DataCodeEnum.OMDB_INTERSECTION.code && renderEntity.properties.containsKey("linkList")){
if (renderEntity.properties["linkList"] != null) {
@ -263,6 +264,103 @@ class ImportOMDBHelper @AssistedInject constructor(
renderEntity.enable = 2
Log.e("qj","${renderEntity.name}==不包括任务linkPid")
}
//道路属性code编码需要特殊处理 存在多个属性值时渲染优先级SA>PA,存在多个属性值时渲染优先级FRONTAGE>MAIN_SIDE_A CCESS
if(renderEntity.code == DataCodeEnum.OMDB_LINK_ATTRIBUTE.code){
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{
type = renderEntity.properties["FRONTAGE"]
if(type!=null&&type=="1"){
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code
}else{
type = renderEntity.properties["MAIN_SIDE_ACCESS"]
if(type!=null&&type=="1"){
renderEntity.code = DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code
}else{
renderEntity.enable=0
Log.e("qj","过滤不显示数据${renderEntity.table}")
continue
}
}
}
}
}else if(renderEntity.code == DataCodeEnum.OMDB_RAMP.code){
/*匝道*/
var formWay = renderEntity.properties["FORM_OF_WAY"]
if(formWay!=null){
when (formWay) {
"93"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_1.code
"98"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_2.code
"99"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_3.code
"100"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_4.code
"102"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_5.code
"103"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_6.code
"104"-> renderEntity.code = DataCodeEnum.OMDB_RAMP_7.code
}
}
}else if(renderEntity.code == DataCodeEnum.OMDB_LINK_FORM1.code){
/*道路形态1*/
var formWay = renderEntity.properties["FORM_OF_WAY"]
if(formWay!=null){
when (formWay) {
"35"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM1_1.code
"37"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM1_2.code
"38"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM1_3.code
}
}
}else if(renderEntity.code == DataCodeEnum.OMDB_LINK_FORM2.code){
/*道路形态2*/
var formWay = renderEntity.properties["FORM_OF_WAY"]
if(formWay!=null){
when (formWay) {
"10"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_1.code
"11"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_2.code
"17"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_3.code
"18"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_4.code
"20"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_5.code
"22"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_6.code
"36"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_7.code
"52"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_8.code
"53"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_9.code
"54"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_10.code
"60"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_11.code
"84"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_12.code
"85"-> renderEntity.code = DataCodeEnum.OMDB_LINK_FORM2_13.code
}
}
}else if(renderEntity.code == DataCodeEnum.OMDB_LANE_MARK_BOUNDARYTYPE.code){
var boundaryType = renderEntity.properties["boundaryType"]
if(boundaryType!=null){
when (boundaryType) {
"0","1","6","8","9"->{
renderEntity.enable=0
Log.e("qj","过滤不显示数据${renderEntity.table}")
continue
}
}
}
}else if(renderEntity.code == DataCodeEnum.OMDB_RDBOUND_BOUNDARYTYPE.code){
//过滤不需要渲染的要素
var boundaryType = renderEntity.properties["boundaryType"]
if(boundaryType!=null){
when (boundaryType) {
"0","3","4","5","7","9"->{
renderEntity.enable=0
Log.e("qj","过滤不显示数据${renderEntity.table}")
continue
}
}
}
}
listResult.add(renderEntity)
// 对renderEntity做预处理后再保存
val resultEntity = importConfig.transformProperties(renderEntity)

View File

@ -3,6 +3,7 @@ package com.navinfo.omqs.db
import android.util.Log
import com.navinfo.collect.library.data.entity.ReferenceEntity
import com.navinfo.collect.library.data.entity.RenderEntity
import com.navinfo.collect.library.enum.DataCodeEnum
import com.navinfo.collect.library.utils.GeometryTools
import io.realm.Realm
import org.json.JSONArray
@ -397,7 +398,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 +417,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 +452,24 @@ class ImportPreProcess {
}
}
/**
* 生成默认道路名数据
* */
fun generateRoadText(renderEntity: RenderEntity) {
// 根据类型进行文字转换
if (renderEntity.code != null) {
if(renderEntity.code==DataCodeEnum.OMDB_LINK_ATTRIBUTE_SA.code){
renderEntity.properties["name"] = "SA"
}else if(renderEntity.code==DataCodeEnum.OMDB_LINK_ATTRIBUTE_PA.code){
renderEntity.properties["name"] = "PA"
}else if(renderEntity.code==DataCodeEnum.OMDB_LINK_ATTRIBUTE_FORNTAGE.code){
renderEntity.properties["name"] = "FRONTAGE"
}else if(renderEntity.code==DataCodeEnum.OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS.code){
renderEntity.properties["name"] = "MAIN"
}
}
}
/**
* 生成默认道路名数据

View File

@ -63,7 +63,7 @@ class RealmOperateHelper() {
val realmList = realm.where(RenderEntity::class.java)
.equalTo("table", "OMDB_RD_LINK")
.and()
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId())
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
.findAll()
// 将获取到的数据和查询的polygon做相交只返回相交的数据
val dataList = realm.copyFromRealm(realmList)
@ -126,7 +126,7 @@ class RealmOperateHelper() {
val realmList = realm.where(RenderEntity::class.java)
.equalTo("table", table)
.and()
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId())
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
.findAll()
// 将获取到的数据和查询的polygon做相交只返回相交的数据
val dataList = realm.copyFromRealm(realmList)
@ -165,7 +165,7 @@ class RealmOperateHelper() {
val realm = Realm.getDefaultInstance()
val realmList = realm.where(HadLinkDvoBean::class.java)
.equalTo("taskId",RealmDBParamUtils.getTaskId())
.equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
.findAll()
var linkBean: HadLinkDvoBean? = null
var nearLast: Double = 99999.99
@ -189,7 +189,7 @@ class RealmOperateHelper() {
val realmR = realm.where(RenderEntity::class.java)
.equalTo("table", "OMDB_RD_LINK")
.and()
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId())
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
.findFirst()
if (realmR != null) {
link = realm.copyFromRealm(realmR)
@ -207,7 +207,7 @@ class RealmOperateHelper() {
val realmR = realm.where(QsRecordBean::class.java)
.equalTo("table", "QsRecordBean")
.and()
.equalTo("id", markId).and().equalTo("taskId",RealmDBParamUtils.getTaskId())
.equalTo("id", markId).and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
.findFirst()
if (realmR != null) {
qsRecordBean = realm.copyFromRealm(realmR)
@ -221,7 +221,7 @@ class RealmOperateHelper() {
val realm = Realm.getDefaultInstance()
val realmR = realm.where(RenderEntity::class.java)
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId())
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
.findAll()
val dataList = realm.copyFromRealm(realmR)
@ -266,7 +266,7 @@ class RealmOperateHelper() {
val realmList = realm.where(RenderEntity::class.java)
.notEqualTo("table", "OMDB_RD_LINK")
.and()
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId())
.rawPredicate("tileX>=$xStart and tileX<=$xEnd and tileY>=$yStart and tileY<=$yEnd").and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
.findAll()
// 将获取到的数据和查询的polygon做相交只返回相交的数据
val queryResult = realmList?.stream()?.filter {
@ -296,7 +296,7 @@ class RealmOperateHelper() {
val realmList = realm.where(RenderEntity::class.java)
.notEqualTo("table", "OMDB_RD_LINK")
.and()
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId())
.equalTo("properties['${LinkTable.linkPid}']", linkPid).and().equalTo("taskId",RealmDBParamUtils.getTaskId()).and().between("enable",1,2)
.findAll()
result.addAll(realm.copyFromRealm(realmList))
return result

View File

@ -34,7 +34,7 @@ interface ScProblemTypeDao {
suspend fun findClassTypeList(): List<ScProblemTypeBean>?
@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.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
@ -509,7 +510,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
@ -540,12 +541,19 @@ class MainViewModel @Inject constructor(
)
}
}
//车道数,种别,功能等级,线限速,道路方向
2041, 2008, 2002, 2019, 2010, 2037 ->
topSignList.add(
signBean
)
4002, 4003, 4004, 4010, 4022, 4601 -> signList.add(
// //车道数,种别,功能等级,线限速,道路方向
// 2041, 2008, 2002, 2019, 2010, 2037 ->
// topSignList.add(
// signBean
// )
// 4002, 4003, 4004, 4010, 4022, 4601 -> signList.add(
// signBean
// )
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
)
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
)
}
@ -1061,7 +1069,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()
}
}
@ -1152,6 +1161,7 @@ class MainViewModel @Inject constructor(
}
}
}
SearchEnum.MARK -> {
viewModelScope.launch(Dispatchers.IO) {
val qsRecordBean = realmOperateHelper.queryQcRecordBean(markId = msg)
@ -1176,6 +1186,7 @@ class MainViewModel @Inject constructor(
}
}
}
SearchEnum.LOCATION -> {
val parts = msg.split("[,\\s]".toRegex())
if (parts.size == 2) {

View File

@ -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

View File

@ -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()) {

View File

@ -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(

View File

@ -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,21 +22,21 @@ 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)
//全封闭
2022 -> getConAccessText(data)
//匝道
2037 -> getRampText(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 -> ""
}
}
@ -120,35 +121,35 @@ 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 -> "线限速"
//全封闭
2022 -> "全封闭"
//匝道
2037 -> "匝道"
//车道数
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 -> ""
}
}
@ -250,9 +251,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 -> ""
}
}
@ -441,15 +442,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
}
@ -536,10 +537,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()
@ -550,7 +551,7 @@ class SignUtil {
*/
fun getRoadNameList(data: RenderEntity): MutableList<RoadNameBean> {
val list = mutableListOf<RoadNameBean>()
if (data.code == 2011) {
if (data.code == "2011") {
try {
val shapeStr = data.properties["shapeList"]
val array = JSONArray(shapeStr)
@ -588,11 +589,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
@ -802,11 +803,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
}
}

View File

@ -1951,8 +1951,8 @@
</m>
<m v="OMDB_AREA">
<!-- <area use="sign-bg" repeat="false" src="assets:omdb/veer_side_walk.jpg" stroke="#ff0000" stroke-width="2"></area>-->
<area use="sign-bg" repeat="false" src="@text:人行横道" stroke="#ff0000" stroke-width="2"></area>
<!-- <area use="sign-bg" repeat="false" src="assets:omdb/veer_side_walk.jpg" stroke="#ff0000" stroke-width="2"></area>
<area use="sign-bg" repeat="false" src="@text:人行横道" stroke="#ff0000" stroke-width="2"></area>-->
</m>
<!-- 路口 -->
<m v="OMDB_INTERSECTION">
@ -2031,9 +2031,12 @@
<!-- 道路边界类型 -->
<m v="OMDB_RDBOUND_BOUNDARYTYPE">
<outline-layer id="boundaryType" stroke="#8e44ad" width="0.1" />
<m k="boundaryType" v="0|2|3|4|5|6|7|8|9">
<m k="boundaryType" v="2|6|8">
<line stroke="#ffffff" use="boundaryType" width="0.1"/>
</m>
<!-- <m k="boundaryType" v="0|2|3|4|5|6|7|8|9">
<line stroke="#ffffff" use="boundaryType" width="0.1"/>
</m>-->
<m k="boundaryType" v="1">
<!--无标线无可区分边界-->
<line dasharray="5,5" repeat-start="0" stroke="#ffffff" width="0.2"/>
@ -2046,9 +2049,9 @@
<outline-layer id="boundary" stroke="#ffffff" width="0.1" />
<!--只区分虚线与实线-->
<m k="boundaryType" v="1">
<!-- <m k="boundaryType" v="1">
<line dasharray="5,5" repeat-start="5" stroke="#90A0BD" width="0.05"/>
</m>
</m>-->
<m k="boundaryType" v="2">
<!--标线-->
@ -2100,10 +2103,63 @@
</m>
</m>
</m>
<m k="boundaryType" v="0|3|4|5|6|7|8|9">
<m k="boundaryType" v="3|4|5|7">
<line stroke="#ffffff" use="boundaryType" />
</m>
<!-- <m k="boundaryType" v="0|3|4|5|6|7|8|9">
<line stroke="#ffffff" use="boundaryType" />
</m>-->
</m>
<!-- 道路属性 -->
<m v="OMDB_LINK_ATTRIBUTE">
<m k="code" v="OMDB_LINK_ATTRIBUTE_SA">
<text use="road" stroke="#fcba5a" size="16"></text>
</m>
<m k="code" v="OMDB_LINK_ATTRIBUTE_PA">
<text use="road" stroke="#fcba5a" size="16"></text>
</m>
<m k="code" v="OMDB_LINK_ATTRIBUTE_FORNTAGE">
<line dasharray="10,2,2,2,2,2" repeat-start="0" stroke="#fcba5a" width="0.2" />
</m>
<m k="code" v="OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS">
<line dasharray="10,2,2,2,2,2" repeat-start="0" stroke="#fcba5a" width="0.2" />
</m>
</m>
<!-- 匝道 -->
<m v="OMDB_RAMP">
<line dasharray="10,2,2,2,2,2" repeat-start="0" stroke="#fcba5a" width="0.2" />
</m>
<!-- 上下线分离 -->
<m v="OMDB_MULTI_DIGITIZED">
<line dasharray="10,2,2,2,2,2" repeat-start="0" stroke="#fcba5a" width="0.2" />
</m>
<!-- 全封闭 -->
<m v="OMDB_CON_ACESS">
<line dasharray="10,2,2,2,2,2" repeat-start="0" stroke="#fcba5a" width="0.2" />
</m>
<!-- 高架 -->
<m v="OMDB_VIADUCT">
<line dasharray="10,2,2,2,2,2" repeat-start="0" stroke="#fcba5a" width="0.2" />
</m>
<!-- 道路形态1 -->
<m v="OMDB_LINK_FORM1">
<line dasharray="10,2,2,2,2,2" repeat-start="0" stroke="#fcba5a" width="0.2" />
</m>
<!-- 道路形态2 -->
<m v="OMDB_LINK_FORM2">
<line dasharray="10,2,2,2,2,2" repeat-start="0" stroke="#fcba5a" width="0.2" />
</m>
<!--常规点限速-->

View File

@ -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() {

View File

@ -0,0 +1,164 @@
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("道路属性", "2004"),
OMDB_LINK_ATTRIBUTE_SA("道路属性-SA", "2004-1"), OMDB_LINK_ATTRIBUTE_PA(
"道路属性-PA",
"2004-2"
),
OMDB_LINK_ATTRIBUTE_FORNTAGE(
"道路属性-辅路",
"2004-3"
),
OMDB_LINK_ATTRIBUTE_MAIN_SIDE_ACCESS(
"道路属性-主辅路出入口",
"2004-4"
),
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_RAMP(
"匝道",
"2037"
),
OMDB_RAMP_1(
"普通路连接匝道",
"2037-1"
),
OMDB_RAMP_2(
"高速入口匝道",
"2037-2"
),
OMDB_RAMP_3(
"高速出口匝道",
"2037-3"
),
OMDB_RAMP_4(
"高速连接匝道",
"2037-4"
),
OMDB_RAMP_5(
"高速直连入口匝道",
"2037-5"
),
OMDB_RAMP_6(
"高速直连出口匝道",
"2037-6"
),
OMDB_RAMP_7(
"高速直连出口匝道高速出入口匝道",
"2037-7"
),
OMDB_MULTI_DIGITIZED("上下线分离", "2040"), OMDB_LANE_NUM("车道数", "2041"),
OMDB_VIADUCT("高架", "2043"),
OMDB_RDBOUND_BOUNDARYTYPE("道路边界类型", "2083"), OMDB_BRIDGE(
"",
"2201"
),
OMDB_TUNNEL("隧道", "2202"),
OMDB_RoundAbout(
"环岛",
"2204"
),
OMDB_LINK_FORM1(
"道路形态1",
"2205"
),
OMDB_LINK_FORM1_1(
"U-Turn",
"2205-1"
),
OMDB_LINK_FORM1_2(
"提前右转",
"2205-2"
),
OMDB_LINK_FORM1_3(
"提前左转",
"2205-3"
),
OMDB_LINK_FORM2(
"道路形态2",
"2206"
),
OMDB_LINK_FORM2_1(
"IC",
"2206-1"
),
OMDB_LINK_FORM2_2(
"JCT",
"2206-2"
),
OMDB_LINK_FORM2_3(
"跨线地道",
"2206-3"
),
OMDB_LINK_FORM2_4(
"私道",
"2206-4"
),
OMDB_LINK_FORM2_5(
"步行街",
"2206-5"
),
OMDB_LINK_FORM2_6(
"公交专用道",
"2206-6"
),
OMDB_LINK_FORM2_7(
"POI 连接路",
"2206-7"
),
OMDB_LINK_FORM2_8(
"区域内道路",
"2206-8"
),
OMDB_LINK_FORM2_9(
"停车场出入口连接路",
"2206-9"
),
OMDB_LINK_FORM2_10(
"停车场内部虚拟连接路",
"2206-10"
),
OMDB_LINK_FORM2_11(
"风景路线",
"2206-11"
),OMDB_LINK_FORM2_12(
"车辆测试路段",
"2206-12"
),
OMDB_LINK_FORM2_13(
"驾照考试路段",
"2206-13"
),
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")
}