From ac6e3d577aac6da6caa5419b2e06216ff2a9897a Mon Sep 17 00:00:00 2001
From: xiaoyan <xiaoyan159@163.com>
Date: Tue, 20 Jun 2023 14:30:07 +0800
Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0=E9=81=93=E8=B7=AF?=
 =?UTF-8?q?=E9=9D=A2=E6=B8=B2=E6=9F=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/src/main/assets/omdb_config.json          | 37 +++++++++++++++++++
 .../main/java/com/navinfo/omqs/Constant.kt    |  7 ++++
 .../com/navinfo/omqs/db/ImportPreProcess.kt   | 27 ++++++++++++++
 .../navinfo/omqs/tools/LayerConfigUtils.kt    | 22 ++++++-----
 .../layermanager/LayerManagerViewModel.kt     |  2 +-
 .../personalcenter/PersonalCenterFragment.kt  |  2 +-
 .../src/main/assets/editormarker.xml          |  4 ++
 7 files changed, 90 insertions(+), 11 deletions(-)

diff --git a/app/src/main/assets/omdb_config.json b/app/src/main/assets/omdb_config.json
index 1060acc8..994a1511 100644
--- a/app/src/main/assets/omdb_config.json
+++ b/app/src/main/assets/omdb_config.json
@@ -20,6 +20,19 @@
 			"code": 2010,
 			"name": "道路方向"
 		},
+		"2011": {
+			"table": "OMDB_LINK_NAME",
+			"code": 2011,
+			"name": "道路名",
+			"transformer": [
+				{
+					"k": "geometry",
+					"v": "~",
+					"klib": "geometry",
+					"vlib": "generateRoadName()"
+				}
+			]
+		},
 		"2013": {
 			"table": "OMDB_LANE_MARK_BOUNDARYTYPE",
 			"code": 2013,
@@ -83,6 +96,14 @@
 			"code": 2202,
 			"name": "隧道"
 		},
+		"4001": {
+            "table": "OMDB_INTERSECTION",
+            "code": 4001,
+            "name": "路口",
+			"transformer": [
+
+			]
+        },
 		"4002": {
             "table": "OMDB_SPEEDLIMIT",
             "code": 4002,
@@ -153,6 +174,14 @@
 				}
 			]
 		},
+		"4010":{
+			"table": "OMDB_ELECTRONICEYE",
+			"code": 4010,
+			"name": "电子眼",
+			"transformer": [
+
+			]
+		},
 		"4022": {
 			"table": "OMDB_TRAFFICLIGHT",
 			"code": 4022,
@@ -166,6 +195,14 @@
 				}
 			]
 		},
+		"4601":{
+			"table": "OMDB_LANEINFO",
+			"code": 4601,
+			"name": "车信",
+			"transformer": [
+
+			]
+		},
         "5001":{
             "table": "OMDB_LANE_LINK_LG",
             "code": 5001,
diff --git a/app/src/main/java/com/navinfo/omqs/Constant.kt b/app/src/main/java/com/navinfo/omqs/Constant.kt
index ed6d845b..328830fe 100644
--- a/app/src/main/java/com/navinfo/omqs/Constant.kt
+++ b/app/src/main/java/com/navinfo/omqs/Constant.kt
@@ -1,5 +1,7 @@
 package com.navinfo.omqs
 
+import com.navinfo.omqs.bean.ImportConfig
+
 class Constant {
     companion object {
         /**
@@ -45,6 +47,11 @@ class Constant {
          */
         lateinit var DOWNLOAD_PATH: String
 
+        /**
+         * 图层管理对应的配置
+         * */
+        var LAYER_CONFIG_LIST: List<ImportConfig>? = null
+
         const val DEBUG = true
 
         var IS_VIDEO_SPEED by kotlin.properties.Delegates.notNull<Boolean>()
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 1aab1841..55b5d4b7 100644
--- a/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt
+++ b/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt
@@ -190,4 +190,31 @@ class ImportPreProcess {
         angleReference.properties["type"] = "angle"
         Realm.getDefaultInstance().insert(angleReference)
     }
+
+    fun generateRoadName(renderEntity: RenderEntity) {
+        // LinkName的真正名称数据,是保存在properties的shapeList中的,因此需要解析shapeList数据
+        var shape :JSONObject? = null
+        if (renderEntity.properties.containsKey("shapeList")) {
+            val shapeListJsonArray: JSONArray = JSONArray(renderEntity.properties["shapeList"])
+            for (i in 0 until shapeListJsonArray.length()) {
+                val shapeJSONObject = shapeListJsonArray.getJSONObject(i)
+                if (shapeJSONObject["nameClass"]==1) {
+                    if (shape == null) {
+                        shape = shapeJSONObject
+                    }
+                    // 获取第一官方名
+                    //("名称分类"NAME_CLASS =“1 官方名”,且名称序号SEQ_NUM 最小者)
+                    if (shapeJSONObject["seqNum"].toString().toInt()< shape!!["seqNum"].toString().toInt()) {
+                        shape = shapeJSONObject
+                    }
+                }
+            }
+        }
+        // 获取最小的shape值,将其记录增加记录在properties的name属性下
+        if(shape!=null) {
+            renderEntity.properties["name"] = shape["name"].toString()
+        } else {
+            renderEntity.properties["name"] = ""
+        }
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/navinfo/omqs/tools/LayerConfigUtils.kt b/app/src/main/java/com/navinfo/omqs/tools/LayerConfigUtils.kt
index 8a98ce1f..1cf4f93c 100644
--- a/app/src/main/java/com/navinfo/omqs/tools/LayerConfigUtils.kt
+++ b/app/src/main/java/com/navinfo/omqs/tools/LayerConfigUtils.kt
@@ -15,16 +15,20 @@ class LayerConfigUtils {
         private val gson = Gson()
 
         fun getLayerConfigList(): List<ImportConfig> {
-            // 首先读取Shared文件,如果存在则直接返回,否则读取config文件
-            return SPStaticUtils.getString(Constant.EVENT_LAYER_MANAGER_CHANGE, null).let {
-                if (it != null) {
-                    val result: List<ImportConfig> =
-                        gson.fromJson(it, object : TypeToken<List<ImportConfig>>() {}.type)
-                    result
-                } else {
-                    LayerConfigUtils.getLayerConfigListFromAssetsFile()
-                }
+            // 首先读取全局变量的数据,如果存在则直接返回,否则读取config文件
+            if (Constant.LAYER_CONFIG_LIST == null) {
+                Constant.LAYER_CONFIG_LIST = getLayerConfigListFromAssetsFile()
             }
+            return Constant.LAYER_CONFIG_LIST!!
+//            return SPStaticUtils.getString(Constant.EVENT_LAYER_MANAGER_CHANGE, null).let {
+//                if (it != null) {
+//                    val result: List<ImportConfig> =
+//                        gson.fromJson(it, object : TypeToken<List<ImportConfig>>() {}.type)
+//                    result
+//                } else {
+//                    LayerConfigUtils.getLayerConfigListFromAssetsFile()
+//                }
+//            }
         }
 
         private fun getLayerConfigListFromAssetsFile(): List<ImportConfig> {
diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/layermanager/LayerManagerViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/layermanager/LayerManagerViewModel.kt
index 0e889dbd..fa993de2 100644
--- a/app/src/main/java/com/navinfo/omqs/ui/fragment/layermanager/LayerManagerViewModel.kt
+++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/layermanager/LayerManagerViewModel.kt
@@ -23,7 +23,7 @@ class LayerManagerViewModel() : ViewModel() {
     }
 
     fun saveLayerConfigList(context: Context, listData: List<ImportConfig>) {
-        SPStaticUtils.put(Constant.EVENT_LAYER_MANAGER_CHANGE, gson.toJson(listData))
+        Constant.LAYER_CONFIG_LIST = listData
         // 发送新的配置数据
         viewModelScope.launch {
             FlowEventBus.post(Constant.EVENT_LAYER_MANAGER_CHANGE, listData)
diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt
index 2b9d9d43..e18f9ae4 100644
--- a/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt
+++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/personalcenter/PersonalCenterFragment.kt
@@ -112,7 +112,7 @@ class PersonalCenterFragment(private var backListener: (() -> Unit?)? = null) :
                     viewModel.readRealmData()
                     // 定位到指定位置
                     niMapController.mMapView.vtmMap.animator()
-                        .animateTo(GeoPoint( 40.034842306317486, 116.31735963074652  ))
+                        .animateTo(GeoPoint( 39.80392140200183, 116.51446703352337   ))
                 }
                 R.id.personal_center_menu_task_list -> {
                     findNavController().navigate(R.id.TaskManagerFragment)
diff --git a/collect-library/src/main/assets/editormarker.xml b/collect-library/src/main/assets/editormarker.xml
index 6f97c423..2dcfd6ee 100644
--- a/collect-library/src/main/assets/editormarker.xml
+++ b/collect-library/src/main/assets/editormarker.xml
@@ -1785,5 +1785,9 @@
                 <line stroke="#14582c" width="0.1" dasharray="1,1" repeat-gap="3" repeat-start="0"/>
             </m>
         </m>
+        <!-- 道路名 -->
+        <m v="OMDB_LINK_NAME">
+            <text use="road"></text>
+        </m>
     </m>
 </rendertheme>
\ No newline at end of file