1、修改物理车道数编码2、修复车道中心面断面问题3、修复中央隔离带按通行方向左右显示4、修复设施分离按通行方向左右显示5、更新可变线限速样式

This commit is contained in:
qiji4215
2023-12-06 17:21:46 +08:00
parent 3fc43af5bf
commit 517d5a884c
11 changed files with 138 additions and 89 deletions

View File

@@ -243,22 +243,6 @@
}
]
},
"2097": {
"table": "OMDB_PHY_LANENUM",
"code": 2097,
"name": "物理车道数",
"zoomMin": 15,
"zoomMax": 18,
"catch": true,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generatePhyName()"
}
]
},
"2201": {
"table": "OMDB_BRIDGE",
"code": 2201,
@@ -293,6 +277,22 @@
}
]
},
"2617": {
"table": "OMDB_PHY_LANENUM",
"code": 2617,
"name": "物理车道数",
"zoomMin": 15,
"zoomMax": 18,
"catch": true,
"transformer": [
{
"k": "geometry",
"v": "~",
"klib": "geometry",
"vlib": "generatePhyName()"
}
]
},
"2638": {
"table": "OMDB_LANE_ACCESS",
"code": 2638,

View File

@@ -194,12 +194,12 @@ class ImportOMDBHelper @AssistedInject constructor(
tableNum += importConfig.tableMap.size
}
//缓存任务link信息便于下面与数据进行任务link匹配
val hashMap: HashMap<Long, HadLinkDvoBean> = HashMap<Long, HadLinkDvoBean>()
val hashMap: HashMap<String, HadLinkDvoBean> = HashMap<String, HadLinkDvoBean>()
// val lineList = arrayOfNulls<LineString>(task.hadLinkDvoList.size)
// var index = 0
task.hadLinkDvoList.forEach {
hashMap[it.linkPid.toLong()] = it
hashMap[it.linkPid] = it
// lineList[index] = GeometryTools.createGeometry(it.geometry) as LineString
// index++
}
@@ -310,7 +310,7 @@ class ImportOMDBHelper @AssistedInject constructor(
currentEntry: MutableMap.MutableEntry<String, TableInfo>,
task: TaskBean,
importConfig: ImportConfig,
hashMap: HashMap<Long, HadLinkDvoBean>,
hashMap: HashMap<String, HadLinkDvoBean>,
isEmit: Boolean = true) = callbackFlow <Event>{
val cancellable= importData(f,unZipFiles,currentEntry,task,importConfig,hashMap,isEmit,object :MultiPathsCallback<String>{
override fun onProgress(value: Int) {
@@ -342,7 +342,7 @@ class ImportOMDBHelper @AssistedInject constructor(
currentEntry: MutableMap.MutableEntry<String, TableInfo>,
task: TaskBean,
importConfig: ImportConfig,
hashMap: HashMap<Long, HadLinkDvoBean>,
hashMap: HashMap<String, HadLinkDvoBean>,
isEmit: Boolean = true, callback: MultiPathsCallback<String>?
):NonCancellable {
val resHashMap: HashMap<String, RenderEntity> = HashMap() //define empty hashmap
@@ -379,13 +379,6 @@ class ImportOMDBHelper @AssistedInject constructor(
}
newTime = System.currentTimeMillis()
// if (elementIndex % 50 == 0) {
// Log.e(
// "jingo",
// "安装数据 ${currentConfig.table} $elementIndex ${listRenderEntity.size} ${newTime - time}"
// )
// }
time = newTime
elementIndex += 1
@@ -409,16 +402,25 @@ class ImportOMDBHelper @AssistedInject constructor(
renderEntity.zoomMin = map["qi_zoomMin"].toString().toInt()
renderEntity.zoomMax = map["qi_zoomMax"].toString().toInt()
//缓存当前数据对应的导航linkpid信息根据与任务对应关系保留任务唯一linkpid
var linkPidList = mutableListOf<String>()
// 在外层记录当前数据的linkPid
if (map.containsKey("linkPid")) {
renderEntity.linkPid = map["linkPid"].toString().split(",")[0]
if (map.containsKey("linkPid")&& map["linkPid"].toString().split(",").isNotEmpty()) {
linkPidList.addAll(map["linkPid"].toString().split(","))
} else if (map.containsKey("linkList")) {
val linkList = map["linkList"].toString()
if (!linkList.isNullOrEmpty() && linkList != "null") {
val list: List<LinkList> = gson.fromJson(
linkList, object : TypeToken<List<LinkList>>() {}.type
)
renderEntity.linkPid = list[0].linkPid
val list: List<LinkList> = gson.fromJson(linkList, object : TypeToken<List<LinkList>>() {}.type)
list.forEach {
linkPidList.add(it.linkPid)
}
}
}
@@ -514,25 +516,16 @@ class ImportOMDBHelper @AssistedInject constructor(
//遍历判断只显示与任务Link相关的任务数据
if (currentConfig.checkLinkId) {
if (renderEntity.linkPid.isNotEmpty()) {
if (linkPidList.isNotEmpty()) {
val currentLinkPid = renderEntity.linkPid
if (!currentLinkPid.isNullOrEmpty() && currentLinkPid != "null") {
val list = currentLinkPid.split(",")
if (list.isNotEmpty()) {
m@ for (linkPid in list) {
if (hashMap.containsKey(linkPid.toLong())) {
renderEntity.enable = 1
break@m
}
}
m@ for (linkPid in linkPidList) {
Log.e("jingo", "$linkPid=======linkPid")
if (linkPid!=null&&hashMap.containsKey(linkPid)) {
renderEntity.enable = 1
renderEntity.linkPid = linkPid
break@m
}
}
} else if (renderEntity.code.toInt() == DataCodeEnum.OMDB_INTERSECTION.code.toInt() || renderEntity.code.toInt() == DataCodeEnum.OMDB_LANE_CONSTRUCTION.code.toInt() && renderEntity.properties.containsKey(
"linkList"
)
@@ -548,8 +541,9 @@ class ImportOMDBHelper @AssistedInject constructor(
)
m@ for (link in list) {
if (hashMap.containsKey(link.linkPid.toLong())) {
if (hashMap.containsKey(link.linkPid)) {
renderEntity.enable = 1
renderEntity.linkPid = link.linkPid
break@m
}
}

View File

@@ -271,7 +271,6 @@ class ImportPreProcess {
// 将这个起终点的线记录在数据中
val startReference = ReferenceEntity()
// startReference.renderEntityId = renderEntity.id
startReference.name = "${renderEntity.name}参考点"
startReference.code = renderEntity.code
startReference.table = renderEntity.table
@@ -285,7 +284,6 @@ class ImportPreProcess {
startReference.properties["qi_table"] = renderEntity.table
startReference.properties["type"] =
"s${if (renderEntity.properties["laneType"]!!.toInt() and (0b1000) > 0) "_dec" else "_acc"}"
startReference.properties["geometry"] = startReference.geometry
startReference.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(startReference.properties))
renderEntity.referenceEntitys.add(startReference)
@@ -304,7 +302,6 @@ class ImportPreProcess {
endReference.properties["qi_table"] = renderEntity.table
endReference.properties["type"] =
"e${if (renderEntity.properties["laneType"]!!.toInt() and (0b1000) > 0) "_dec" else "_acc"}"
endReference.properties["geometry"] = endReference.geometry
endReference.propertiesDb = DeflaterUtil.zipString(JSON.toJSONString(endReference.properties))
renderEntity.referenceEntitys.add(endReference)
}
@@ -353,7 +350,6 @@ class ImportPreProcess {
Log.e("qj", "generateS2EReferencePoint===${startReference.geometry}")
startReference.properties["geometry"] = startReference.geometry
startReference.propertiesDb =
DeflaterUtil.zipString(JSON.toJSONString(startReference.properties))
listResult.add(startReference)
@@ -388,7 +384,6 @@ class ImportPreProcess {
endReference.properties["type"] = "e_2_p"
Log.e("qj", "generateS2EReferencePoint===e_2_p${renderEntity.name}")
}
endReference.properties["geometry"] = endReference.geometry
endReference.propertiesDb =
DeflaterUtil.zipString(JSON.toJSONString(endReference.properties))
renderEntity.referenceEntitys.add(endReference)
@@ -844,14 +839,24 @@ class ImportPreProcess {
when(renderEntity.properties["direct"]?.toInt()){
0,1,2->{
if (medianWidth != null) {
angleReference.geometry =
GeometryTools.computeLine(0.000015, 0.0, renderEntity.geometry)
if(side=="0"){
angleReference.geometry =
GeometryTools.computeLine(0.000015, 0.0, renderEntity.geometry)
}else{
angleReference.geometry =
GeometryTools.computeLine( 0.0, 0.000015,renderEntity.geometry)
}
}
}
3->{
if (medianWidth != null) {
angleReference.geometry =
GeometryTools.computeLine(0.0, 0.000015, renderEntity.geometry)
if(side=="0"){
angleReference.geometry =
GeometryTools.computeLine(0.0, 0.000015, renderEntity.geometry)
}else{
angleReference.geometry =
GeometryTools.computeLine(0.000015, 0.0, renderEntity.geometry)
}
}
}
}

View File

@@ -105,6 +105,13 @@ class SignMoreInfoFragment : BaseFragment() {
}
else -> {
val adapter = SignUtil.getMoreInfoAdapter(it.renderEntity)
//增加详情为空不显示业务
if(adapter==null || adapter.data.isEmpty()){
activity?.run {
supportFragmentManager.beginTransaction().remove(this@SignMoreInfoFragment)
.commit()
}
}
binding.signInfoRecyclerview.adapter = adapter
}
}

View File

@@ -52,6 +52,8 @@ import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
/**
* Tools for handler picture

View File

@@ -833,16 +833,9 @@ class SignUtil {
else -> ""
}))
}
//路牙
DataCodeEnum.OMDB_OBJECT_CURB.code -> {
list.add(TwoItemAdapterItem(title = "是否符合高精地图", text = when (data.properties["compliant"]) {
"0" -> ""
"1" -> ""
else -> ""
}))
}
//平行墙
DataCodeEnum.OMDB_OBJECT_WALL.code -> {
list.add(TwoItemAdapterItem(title = "对象号码", text = "${data.properties["objectPid"]}"))
list.add(TwoItemAdapterItem(title = "类型", text = when (data.properties["type"]) {
"1" -> "隧道墙"
"3" -> "其他墙"
@@ -851,6 +844,7 @@ class SignUtil {
}
//警示区
DataCodeEnum.OMDB_OBJECT_WARNING_AREA.code -> {
list.add(TwoItemAdapterItem(title = "对象号码", text = "${data.properties["objectPid"]}"))
list.add(TwoItemAdapterItem(title = "颜色", text = when (data.properties["color"]) {
"0" -> "未验证"
"1" -> "白色"

View File

@@ -64,7 +64,7 @@
<item
android:id="@+id/personal_center_menu_version"
android:icon="@drawable/ic_baseline_layers_24"
android:title="版本24QE1_V1.2.3_20231201_A" />
android:title="版本24QE1_V1.2.4_20231206_A" />
</group>
<group android:checkableBehavior="single">
<item android:title="小标题">