From ac6e3d577aac6da6caa5419b2e06216ff2a9897a Mon Sep 17 00:00:00 2001 From: xiaoyan 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? = null + const val DEBUG = true var IS_VIDEO_SPEED by kotlin.properties.Delegates.notNull() 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 { - // 首先读取Shared文件,如果存在则直接返回,否则读取config文件 - return SPStaticUtils.getString(Constant.EVENT_LAYER_MANAGER_CHANGE, null).let { - if (it != null) { - val result: List = - gson.fromJson(it, object : TypeToken>() {}.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 = +// gson.fromJson(it, object : TypeToken>() {}.type) +// result +// } else { +// LayerConfigUtils.getLayerConfigListFromAssetsFile() +// } +// } } private fun getLayerConfigListFromAssetsFile(): List { 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) { - 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 @@ + + + + \ No newline at end of file