From 02a65100c8c6b1780992c6521628765678337326 Mon Sep 17 00:00:00 2001 From: xiaoyan Date: Mon, 5 Jun 2023 15:59:56 +0800 Subject: [PATCH 1/8] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E8=BD=A6=E9=81=93?= =?UTF-8?q?=E8=BE=B9=E7=BA=BF=E6=95=B0=E6=8D=AE=E5=AF=BC=E5=85=A5=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E9=80=89=E5=8F=96=E5=8E=9F=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/navinfo/omqs/db/ImportPreProcess.kt | 20 ++++++++++++++++--- .../src/main/assets/editormarker.xml | 10 +++++----- vtm | 2 +- 3 files changed, 23 insertions(+), 9 deletions(-) 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 99abeeb1..1aab1841 100644 --- a/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt +++ b/app/src/main/java/com/navinfo/omqs/db/ImportPreProcess.kt @@ -119,14 +119,28 @@ class ImportPreProcess { * 解析车道边线数据二级属性 * */ fun unpackingLaneBoundary(renderEntity: RenderEntity) { + var shape:JSONObject = JSONObject(mapOf( + "lateralOffset" to 0, + "markType" to 1, + "markColor" to 0, + "markMaterial" to 1, + "markSeqNum" to 1, + "markWidth" to 10, + "markingCount" to 1 + )) if (renderEntity.code == 2013&&!renderEntity.properties["shapeList"].isNullOrEmpty()&&renderEntity.properties["shapeList"]!="null") { // 解析shapeList,将数组中的属性放会properties val shapeList = JSONArray(renderEntity.properties["shapeList"]) - val shape = shapeList.getJSONObject(0) - for (key in shape.keys()) { - renderEntity.properties[key] = shape[key].toString() + for (i in 0 until shapeList.length()) { + shape = shapeList.getJSONObject(i) + if (shape.optInt("lateralOffset", 0) == 0) { + break + } } } + for (key in shape.keys()) { + renderEntity.properties[key] = shape[key].toString() + } } /** diff --git a/collect-library/src/main/assets/editormarker.xml b/collect-library/src/main/assets/editormarker.xml index 3c3395da..0729b68a 100644 --- a/collect-library/src/main/assets/editormarker.xml +++ b/collect-library/src/main/assets/editormarker.xml @@ -1743,19 +1743,19 @@ - + - + - + - + - + diff --git a/vtm b/vtm index 1ee201a4..fb0b88e9 160000 --- a/vtm +++ b/vtm @@ -1 +1 @@ -Subproject commit 1ee201a41f78f169873848209a3f3bdac36f185a +Subproject commit fb0b88e916c51754baedfb7c5b42aa86b9dc337d From 79659e78fb5ebc3f2c450e1d7319c8adf9b23d66 Mon Sep 17 00:00:00 2001 From: xiaoyan Date: Tue, 13 Jun 2023 17:48:48 +0800 Subject: [PATCH 2/8] =?UTF-8?q?fix:=20=E9=9D=A2=E6=B8=B2=E6=9F=93=E6=B5=8B?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/assets/omdb_config.json | 7 +++++- .../personalcenter/PersonalCenterFragment.kt | 2 +- .../src/main/assets/editormarker.xml | 18 ++++++++++------ .../src/main/assets/omdb/area_test.jpg | Bin 0 -> 37693 bytes .../map/handler/LayerManagerHandler.kt | 20 +++++++++--------- vtm | 2 +- 6 files changed, 30 insertions(+), 19 deletions(-) create mode 100644 collect-library/src/main/assets/omdb/area_test.jpg diff --git a/app/src/main/assets/omdb_config.json b/app/src/main/assets/omdb_config.json index c09fe454..1060acc8 100644 --- a/app/src/main/assets/omdb_config.json +++ b/app/src/main/assets/omdb_config.json @@ -170,6 +170,11 @@ "table": "OMDB_LANE_LINK_LG", "code": 5001, "name": "车道中心线" - } + }, + "5002":{ + "table": "OMDB_AREA", + "code": 5002, + "name": "面测试" + } } } \ No newline at end of file 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 5d53c83a..8d1dffd3 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 @@ -111,7 +111,7 @@ class PersonalCenterFragment : BaseFragment(), FSAFActivityCallbacks { viewModel.readRealmData() // 定位到指定位置 niMapController.mMapView.vtmMap.animator() - .animateTo(GeoPoint(40.031657799200346, 116.32207834810715 )) + .animateTo(GeoPoint(40.0 ,100.0 )) } 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 0729b68a..8351cfe4 100644 --- a/collect-library/src/main/assets/editormarker.xml +++ b/collect-library/src/main/assets/editormarker.xml @@ -1793,13 +1793,19 @@ + + - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/area_test.jpg b/collect-library/src/main/assets/omdb/area_test.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5e274dc1ed1b165009f621fb7597b3675277f27d GIT binary patch literal 37693 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 literal 0 HcmV?d00001 diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt index 75aafa44..01295323 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/LayerManagerHandler.kt @@ -103,16 +103,6 @@ class LayerManagerHandler(context: AppCompatActivity, mapView: NIMapView,tracePa } private fun initOMDBVectorTileLayer() { - // 初始化OMDB相关图层 - omdbVectorTileLayer = VectorTileLayer(mMapView.vtmMap, omdbTileSource) - omdbLabelLayer = LabelLayer(mMapView.vtmMap, omdbVectorTileLayer, LabelTileLoaderHook(), Constant.OMDB_MIN_ZOOM) - if(omdbVectorTileLayer!=null){ - addLayer(omdbVectorTileLayer,NIMapView.LAYER_GROUPS.VECTOR_TILE) - } - if(omdbLabelLayer!=null){ - addLayer(omdbLabelLayer, NIMapView.LAYER_GROUPS.VECTOR_TILE) - } - // 初始化OMDB参考相关图层 omdbReferenceTileLayer = VectorTileLayer(mMapView.vtmMap, omdbReferenceTileSource) omdbReferenceLabelLayer = LabelLayer(mMapView.vtmMap, omdbReferenceTileLayer, LabelTileLoaderHook(), Constant.OMDB_MIN_ZOOM) @@ -122,6 +112,16 @@ class LayerManagerHandler(context: AppCompatActivity, mapView: NIMapView,tracePa if(omdbReferenceLabelLayer!=null){ addLayer(omdbReferenceLabelLayer, NIMapView.LAYER_GROUPS.VECTOR_TILE) } + + // 初始化OMDB相关图层 + omdbVectorTileLayer = VectorTileLayer(mMapView.vtmMap, omdbTileSource) + omdbLabelLayer = LabelLayer(mMapView.vtmMap, omdbVectorTileLayer, LabelTileLoaderHook(), Constant.OMDB_MIN_ZOOM) + if(omdbVectorTileLayer!=null){ + addLayer(omdbVectorTileLayer,NIMapView.LAYER_GROUPS.VECTOR_TILE) + } + if(omdbLabelLayer!=null){ + addLayer(omdbLabelLayer, NIMapView.LAYER_GROUPS.VECTOR_TILE) + } } /** diff --git a/vtm b/vtm index fb0b88e9..6a91e63b 160000 --- a/vtm +++ b/vtm @@ -1 +1 @@ -Subproject commit fb0b88e916c51754baedfb7c5b42aa86b9dc337d +Subproject commit 6a91e63b0c9f65fd68f8aa4972b1b7bf20a5a962 From 6cd9bab9e1952078010b642d9abc32d8feefac84 Mon Sep 17 00:00:00 2001 From: squallzhjch Date: Wed, 14 Jun 2023 14:42:34 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=AD=E6=8E=A7?= =?UTF-8?q?=E8=81=94=E5=8A=A8UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/layout/console_on.xml | 38 +++++++++++++++++++++----- app/src/main/res/values/styles.xml | 2 +- vtm | 2 +- 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/app/src/main/res/layout/console_on.xml b/app/src/main/res/layout/console_on.xml index 86beb031..74e210d1 100644 --- a/app/src/main/res/layout/console_on.xml +++ b/app/src/main/res/layout/console_on.xml @@ -128,12 +128,16 @@ android:src="@drawable/icon_console_task" app:layout_constraintBottom_toBottomOf="@id/console_task_bg" app:layout_constraintLeft_toLeftOf="@id/console_task_bg" - app:layout_constraintTop_toTopOf="@id/console_task_bg" /> + app:layout_constraintRight_toLeftOf="@id/console_task_icon_text" + app:layout_constraintTop_toTopOf="@id/console_task_bg" + app:layout_constraintVertical_chainStyle="packed" /> @@ -154,12 +158,16 @@ android:src="@drawable/icon_console_evaluation" app:layout_constraintBottom_toBottomOf="@id/console_evaluation_bg" app:layout_constraintLeft_toLeftOf="@id/console_evaluation_bg" - app:layout_constraintTop_toTopOf="@id/console_evaluation_bg" /> + app:layout_constraintRight_toLeftOf="@id/console_evaluation_icon_text" + app:layout_constraintTop_toTopOf="@id/console_evaluation_bg" + app:layout_constraintVertical_chainStyle="packed" /> @@ -180,12 +188,16 @@ android:src="@drawable/icon_console_offline_map" app:layout_constraintBottom_toBottomOf="@id/console_offline_map_bg" app:layout_constraintLeft_toLeftOf="@id/console_offline_map_bg" - app:layout_constraintTop_toTopOf="@id/console_offline_map_bg" /> + app:layout_constraintRight_toLeftOf="@id/console_offline_map_icon_text" + app:layout_constraintTop_toTopOf="@id/console_offline_map_bg" + app:layout_constraintVertical_chainStyle="packed" /> @@ -205,12 +217,16 @@ android:src="@drawable/icon_console_route" app:layout_constraintBottom_toBottomOf="@id/console_route_bg" app:layout_constraintLeft_toLeftOf="@id/console_route_bg" - app:layout_constraintTop_toTopOf="@id/console_route_bg" /> + app:layout_constraintRight_toLeftOf="@id/console_route_icon_text" + app:layout_constraintTop_toTopOf="@id/console_route_bg" + app:layout_constraintVertical_chainStyle="packed" /> @@ -232,12 +248,16 @@ android:src="@drawable/icon_console_layer_setting" app:layout_constraintBottom_toBottomOf="@id/console_layer_setting_bg" app:layout_constraintLeft_toLeftOf="@id/console_layer_setting_bg" - app:layout_constraintTop_toTopOf="@id/console_layer_setting_bg" /> + app:layout_constraintRight_toLeftOf="@id/console_layer_setting_icon_text" + app:layout_constraintTop_toTopOf="@id/console_layer_setting_bg" + app:layout_constraintVertical_chainStyle="packed" /> @@ -257,12 +277,16 @@ android:src="@drawable/icon_console_personal_center" app:layout_constraintBottom_toBottomOf="@id/console_personal_center_bg" app:layout_constraintLeft_toLeftOf="@id/console_personal_center_bg" - app:layout_constraintTop_toTopOf="@id/console_personal_center_bg" /> + app:layout_constraintRight_toLeftOf="@id/console_personal_center_icon_text" + app:layout_constraintTop_toTopOf="@id/console_personal_center_bg" + app:layout_constraintVertical_chainStyle="packed" /> @@ -469,7 +493,7 @@ app:layout_constraintLeft_toLeftOf="@id/console_track_bg" app:layout_constraintRight_toLeftOf="@id/console_track_text" app:layout_constraintTop_toTopOf="@id/console_track_bg" - app:layout_constraintVertical_chainStyle="spread" /> + app:layout_constraintVertical_chainStyle="packed" /> wrap_content @color/white 18sp - 5dp + \ No newline at end of file + \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_4022_0.svg b/collect-library/src/main/assets/omdb/icon_4022_0.svg index 63378323..dc58b844 100644 --- a/collect-library/src/main/assets/omdb/icon_4022_0.svg +++ b/collect-library/src/main/assets/omdb/icon_4022_0.svg @@ -1,162 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/collect-library/src/main/assets/omdb/icon_arrow_right.svg b/collect-library/src/main/assets/omdb/icon_arrow_right.svg index fc0678f3..73b8c5dc 100644 --- a/collect-library/src/main/assets/omdb/icon_arrow_right.svg +++ b/collect-library/src/main/assets/omdb/icon_arrow_right.svg @@ -1,40 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MarkHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MarkHandler.kt index bc2f46e2..e4e9b588 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MarkHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/MarkHandler.kt @@ -263,7 +263,6 @@ class MarkHandler(context: AppCompatActivity, mapView: NIMapView) : mContext.lifecycleScope.launch(Dispatchers.IO) { var list = mutableListOf() val realm = Realm.getDefaultInstance() - Log.e("jingo", "realm hashCOde ${realm.hashCode()}") realm.executeTransaction { val objects = realm.where().findAll() list = realm.copyFromRealm(objects) diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/layers/MyItemizedLayer.java b/collect-library/src/main/java/com/navinfo/collect/library/map/layers/MyItemizedLayer.java index cae265b8..fb9b4c47 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/layers/MyItemizedLayer.java +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/layers/MyItemizedLayer.java @@ -89,7 +89,6 @@ public class MyItemizedLayer extends ItemizedLayer { private boolean activateSelectedItems(MotionEvent event, ActiveItem task) { int size = this.mItemList.size(); - Log.e("jingo", "地图点击 size =" + size); if (size == 0) { return false; } else { From 236f422fa157d466907403f58453eb347c715ff6 Mon Sep 17 00:00:00 2001 From: squallzhjch Date: Fri, 16 Jun 2023 15:29:01 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=86=B2=E7=AA=81?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/assets/editormarker.xml | 187 ++++++++++-------- 1 file changed, 100 insertions(+), 87 deletions(-) diff --git a/collect-library/src/main/assets/editormarker.xml b/collect-library/src/main/assets/editormarker.xml index 1fe31923..f53a299e 100644 --- a/collect-library/src/main/assets/editormarker.xml +++ b/collect-library/src/main/assets/editormarker.xml @@ -1,7 +1,6 @@ @@ -46,8 +45,8 @@ - + @@ -174,7 +173,7 @@ - + @@ -1480,18 +1479,19 @@ - + - + - + - + @@ -1503,7 +1503,7 @@ - + @@ -1514,7 +1514,7 @@ - + @@ -1538,19 +1538,20 @@ - + - + - + - + - + @@ -1560,53 +1561,53 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -1636,69 +1637,71 @@ - - - - - - - - - + + + + + - - - - + + + - - - - - + + + + + - - - - + + + - + - - - - + + + - - - - + + + - + - + @@ -1711,19 +1714,19 @@ - + - + - + - + - + @@ -1731,31 +1734,37 @@ - + - + - + - + - + - + - - - - + + + + @@ -1764,30 +1773,34 @@ - - + + - + - + - + - + - + From 1fe90ccf26719acf4146a70dc597b55a23fe65be Mon Sep 17 00:00:00 2001 From: squallzhjch Date: Fri, 16 Jun 2023 17:16:20 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../omqs/ui/activity/map/MainActivity.kt | 13 +++++++++++++ .../ui/fragment/console/ConsoleFragment.kt | 15 +++++++++++++++ .../main_sign_moreinfo_bg.9.png | Bin 5240 -> 5136 bytes app/src/main/res/layout/activity_main.xml | 2 ++ 4 files changed, 30 insertions(+) diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt index 12464cbf..c46932f7 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainActivity.kt @@ -440,6 +440,12 @@ class MainActivity : BaseActivity() { */ fun onSwitchSheet() { if (binding.mainActivityBottomSheetGroup.visibility == View.VISIBLE) { + leftFragment?.let { + supportFragmentManager.beginTransaction().remove(it).commit() + leftFragment = null + binding.mainActivityLeftFragment.visibility = View.GONE + } + binding.mainActivityBottomSheetGroup.visibility = View.GONE } else { binding.mainActivityBottomSheetGroup.visibility = View.VISIBLE @@ -500,6 +506,13 @@ class MainActivity : BaseActivity() { } } + /** + * 路径规划 + */ + fun onClickRouteFragment() { + Toast.makeText(this, "功能开发中", Toast.LENGTH_SHORT).show() + } + /** * 打开离线地图 */ diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/console/ConsoleFragment.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/console/ConsoleFragment.kt index 966f5666..3318c4c6 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/console/ConsoleFragment.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/console/ConsoleFragment.kt @@ -6,6 +6,7 @@ import android.view.LayoutInflater import android.view.View import android.view.View.OnClickListener import android.view.ViewGroup +import android.widget.Toast import androidx.fragment.app.Fragment import androidx.transition.AutoTransition import androidx.transition.Scene @@ -153,6 +154,11 @@ class ConsoleFragment : BaseFragment(), OnClickListener { */ binding.consoleRoot.findViewById(R.id.console_task_bg)?.setOnClickListener(this) binding.consoleRoot.findViewById(R.id.console_task_icon_bg)?.setOnClickListener(this) + /** + * 路径规划 + */ + binding.consoleRoot.findViewById(R.id.console_route_bg)?.setOnClickListener(this) + binding.consoleRoot.findViewById(R.id.console_route_icon_bg)?.setOnClickListener(this) } override fun onDestroy() { @@ -232,6 +238,9 @@ class ConsoleFragment : BaseFragment(), OnClickListener { (a as MainActivity).onClickResFragment() } } + /** + * 任务列表 + */ R.id.console_task_icon_bg, R.id.console_task_bg -> { activity?.let { a -> a.supportFragmentManager.beginTransaction().remove(this).commit() @@ -239,6 +248,12 @@ class ConsoleFragment : BaseFragment(), OnClickListener { } } + /** + * 路径规划 + */ + R.id.console_route_bg, R.id.console_route_icon_bg -> { + Toast.makeText(requireContext(), "功能开发中", Toast.LENGTH_SHORT).show() + } else -> {} } } diff --git a/app/src/main/res/drawable-xxhdpi/main_sign_moreinfo_bg.9.png b/app/src/main/res/drawable-xxhdpi/main_sign_moreinfo_bg.9.png index e8342f10c3aeebf342ee3c40d24c19d67b86459c..c10da04a43a8d5f8dd079bc5500809445f138036 100644 GIT binary patch literal 5136 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 diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 99828062..77fc36a0 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -423,6 +423,7 @@ android:background="@drawable/icon_main_bottom_route" app:layout_constraintBottom_toTopOf="@id/main_bottom_route_text" app:layout_constraintLeft_toRightOf="@id/main_bottom_offline_map" + android:onClick="@{()->mainActivity.onClickRouteFragment()}" app:layout_constraintRight_toRightOf="@id/main_activity_bottom_sheet_bg" app:layout_constraintTop_toTopOf="@id/main_bottom_task" app:layout_constraintVertical_chainStyle="packed" /> @@ -434,6 +435,7 @@ android:text="路径规划" android:textColor="@color/blue" android:textSize="10sp" + android:onClick="@{()->mainActivity.onClickRouteFragment()}" app:layout_constraintBottom_toBottomOf="@id/main_activity_bottom_sheet_bg" app:layout_constraintLeft_toLeftOf="@id/main_bottom_route" app:layout_constraintRight_toRightOf="@id/main_bottom_route" From ac6e3d577aac6da6caa5419b2e06216ff2a9897a Mon Sep 17 00:00:00 2001 From: xiaoyan Date: Tue, 20 Jun 2023 14:30:07 +0800 Subject: [PATCH 8/8] =?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