From 59bc0f544b451dcba03a9fd4a08f4c780828f8f0 Mon Sep 17 00:00:00 2001 From: squallzhjch Date: Fri, 26 May 2023 10:51:36 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=B0=83=E6=95=B4UI=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E9=81=93=E8=B7=AF=E5=B1=9E=E6=80=A7=E9=9D=A2=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/navinfo/omqs/ui/activity/map/MainActivity.kt | 4 ++-- .../com/navinfo/omqs/ui/activity/map/MainViewModel.kt | 8 +------- app/src/main/res/layout/activity_main.xml | 1 + 3 files changed, 4 insertions(+), 9 deletions(-) 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 e25cf6e9..1f864070 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 @@ -202,10 +202,10 @@ class MainActivity : BaseActivity() { viewModel.liveDataCenterPoint.observe(this) { binding.mainActivityGeometry.text = "经纬度:${ BigDecimal(it.longitude).setScale( - 6, + 7, RoundingMode.HALF_UP ) - },${BigDecimal(it.latitude).setScale(6, RoundingMode.HALF_UP)}" + },${BigDecimal(it.latitude).setScale(7, RoundingMode.HALF_UP)}" } lifecycleScope.launch { diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt index 7ca2b97c..633387f4 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/MainViewModel.kt @@ -102,13 +102,7 @@ class MainViewModel @Inject constructor( mapController.mMapView.vtmMap.events.bind(Map.UpdateListener { e, mapPosition -> when (e) { Map.SCALE_EVENT, Map.MOVE_EVENT, Map.ROTATE_EVENT -> - if (liveDataCenterPoint.value == null - || liveDataCenterPoint.value!!.x != mapPosition.x - || liveDataCenterPoint.value!!.y != mapPosition.y - ) { - liveDataCenterPoint.value = mapPosition - } - + liveDataCenterPoint.value = mapPosition } }) diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index dbb9e2a5..a52db6ab 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -177,6 +177,7 @@ android:paddingLeft="9dp" android:text="经纬度:116.99388424,38.8403844" android:textSize="10sp" + android:onClick="@{()->mainActivity.jumpPosition()}" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintRight_toLeftOf="@id/main_activity_middle_fragment" /> From 10ec7a1e04c0f1471eef159d59061928565d80c7 Mon Sep 17 00:00:00 2001 From: squallzhjch Date: Fri, 26 May 2023 14:01:36 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BB=8F=E7=BA=AC?= =?UTF-8?q?=E5=BA=A6=E5=AE=9A=E4=BD=8D=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../omqs/ui/activity/map/MainActivity.kt | 40 +++++++++++++++---- .../EvaluationResultViewModel.kt | 4 +- .../library/map/handler/AnimationHandler.kt | 3 +- 3 files changed, 36 insertions(+), 11 deletions(-) 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 1f864070..4e233b23 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 @@ -4,11 +4,12 @@ import android.app.Activity import android.content.Intent import android.os.Build import android.os.Bundle -import android.os.PersistableBundle import android.speech.tts.TextToSpeech import android.util.Log import android.view.MotionEvent import android.view.View +import android.widget.EditText +import android.widget.Toast import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.viewModels import androidx.annotation.RequiresApi @@ -18,9 +19,7 @@ import androidx.lifecycle.lifecycleScope import androidx.navigation.findNavController import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.blankj.utilcode.util.SPStaticUtils -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken +import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.navinfo.collect.library.map.NIMapController import com.navinfo.omqs.Constant import com.navinfo.omqs.R @@ -29,12 +28,11 @@ import com.navinfo.omqs.databinding.ActivityMainBinding import com.navinfo.omqs.http.offlinemapdownload.OfflineMapDownloadManager import com.navinfo.omqs.tools.LayerConfigUtils import com.navinfo.omqs.ui.activity.BaseActivity -import com.navinfo.omqs.ui.widget.RecycleViewDivider +import com.navinfo.omqs.ui.widget.RecyclerViewSpacesItemDecoration import com.navinfo.omqs.util.FlowEventBus +import com.navinfo.omqs.util.SpeakMode import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch -import com.navinfo.omqs.ui.widget.RecyclerViewSpacesItemDecoration -import com.navinfo.omqs.util.SpeakMode import org.videolan.vlc.Util import java.math.BigDecimal import java.math.RoundingMode @@ -217,6 +215,34 @@ class MainActivity : BaseActivity() { } } } + //根据输入的经纬度跳转坐标 + fun jumpPosition() { + val view = this.layoutInflater.inflate(R.layout.dialog_view_edittext, null) + val inputDialog = MaterialAlertDialogBuilder( + this + ).setTitle("标记原因").setView(view) + var editText = view.findViewById(R.id.dialog_edittext) + editText.hint = "请输入经纬度例如:116.1234567,39.1234567" + inputDialog.setNegativeButton("取消") { dialog, _ -> + dialog.dismiss() + } + inputDialog.setPositiveButton("确定") { dialog, _ -> + if (editText.text.isNotEmpty()) { + try { + val parts = editText.text.split(",") + if (parts.size == 2) { + val x = parts[0].toDouble() + val y = parts[0].toDouble() + mapController.animationHandler.animationByLatLon(y, x) + } + } catch (e: Exception) { + Toast.makeText(this, "输入格式不正确", Toast.LENGTH_SHORT).show() + } + } + } + inputDialog.show() + } + override fun onStart() { super.onStart() diff --git a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt index 01e93419..24a27f49 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt @@ -124,7 +124,7 @@ class EvaluationResultViewModel @Inject constructor( geoPoint?.let { liveDataQsRecordBean.value!!.geometry = GeometryTools.createGeometry(it).toText() mapController.markerHandle.addMarker(geoPoint, markerTitle) - mapController.animationHandler.animationByLonLat( + mapController.animationHandler.animationByLatLon( geoPoint.latitude, geoPoint.longitude ) viewModelScope.launch { @@ -147,7 +147,7 @@ class EvaluationResultViewModel @Inject constructor( } val point = GeometryTools.createGeoPoint(bean.geometry) this.geometry = GeometryTools.createGeometry(point).toText() - mapController.animationHandler.animationByLonLat(point.latitude, point.longitude) + mapController.animationHandler.animationByLatLon(point.latitude, point.longitude) mapController.markerHandle.addMarker(point, markerTitle) } } diff --git a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/AnimationHandler.kt b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/AnimationHandler.kt index df4fd714..645cc350 100644 --- a/collect-library/src/main/java/com/navinfo/collect/library/map/handler/AnimationHandler.kt +++ b/collect-library/src/main/java/com/navinfo/collect/library/map/handler/AnimationHandler.kt @@ -1,6 +1,5 @@ package com.navinfo.collect.library.map.handler -import android.content.Context import androidx.appcompat.app.AppCompatActivity import com.navinfo.collect.library.map.NIMapView import org.oscim.core.BoundingBox @@ -32,7 +31,7 @@ open class AnimationHandler(context: AppCompatActivity, mapView: NIMapView) : * latitude: ,longitude:经纬度 ** */ - fun animationByLonLat(latitude: Double, longitude: Double, time: Long = 200) { + fun animationByLatLon(latitude: Double, longitude: Double, time: Long = 200) { mMapView.vtmMap.animator().animateTo(time, GeoPoint(latitude, longitude)) } From dae344afc243d7aab5916732c5e8ee96f3545c20 Mon Sep 17 00:00:00 2001 From: squallzhjch Date: Fri, 26 May 2023 15:16:09 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=9C=8B=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/assets/omdb_config.json | 5 ----- .../java/com/navinfo/omqs/ui/activity/map/MainActivity.kt | 8 ++++++-- .../java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt | 2 +- app/src/main/res/layout/activity_main.xml | 3 ++- app/src/main/res/layout/adapter_sign.xml | 8 +++++++- vtm | 2 +- 6 files changed, 17 insertions(+), 11 deletions(-) diff --git a/app/src/main/assets/omdb_config.json b/app/src/main/assets/omdb_config.json index 283ad4fd..d7ac2a91 100644 --- a/app/src/main/assets/omdb_config.json +++ b/app/src/main/assets/omdb_config.json @@ -148,11 +148,6 @@ } ] }, - "4022":{ - "table": "OMDB_TRAFFICLIGHT", - "code": 4022, - "name": "交通灯" - }, "5001":{ "table": "OMDB_LANE_LINK_LG", "code": 5001, 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 4e233b23..43c20509 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 @@ -215,6 +215,7 @@ class MainActivity : BaseActivity() { } } } + //根据输入的经纬度跳转坐标 fun jumpPosition() { val view = this.layoutInflater.inflate(R.layout.dialog_view_edittext, null) @@ -222,23 +223,26 @@ class MainActivity : BaseActivity() { this ).setTitle("标记原因").setView(view) var editText = view.findViewById(R.id.dialog_edittext) - editText.hint = "请输入经纬度例如:116.1234567,39.1234567" + editText.hint = "请输入经纬度例如:\n116.1234567,39.1234567\n116.1234567 39.1234567" inputDialog.setNegativeButton("取消") { dialog, _ -> dialog.dismiss() } inputDialog.setPositiveButton("确定") { dialog, _ -> if (editText.text.isNotEmpty()) { try { - val parts = editText.text.split(",") + val parts = editText.text.toString().split("[,,\\s]".toRegex()) if (parts.size == 2) { val x = parts[0].toDouble() val y = parts[0].toDouble() mapController.animationHandler.animationByLatLon(y, x) + }else{ + Toast.makeText(this, "输入格式不正确", Toast.LENGTH_SHORT).show() } } catch (e: Exception) { Toast.makeText(this, "输入格式不正确", Toast.LENGTH_SHORT).show() } } + dialog.dismiss() } inputDialog.show() } diff --git a/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt b/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt index fb78a41e..e1ca6085 100644 --- a/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt +++ b/app/src/main/java/com/navinfo/omqs/ui/activity/map/SignAdapter.kt @@ -24,7 +24,7 @@ class SignAdapter(private var itemListener: ((Int, SignBean) -> Unit?)? = null) val bd = holder.viewBinding as AdapterSignBinding val item = data[position] if (item.iconId != 0) - bd.signMainIcon.background = holder.viewBinding.root.context.getDrawable(item.iconId) + bd.signMainIconBg.setImageResource(item.iconId) bd.signMainIcon.text = item.iconText bd.signBottomText.text = item.name bd.signBottomRightText.text = item.bottomRightText diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index a52db6ab..78ced960 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -75,7 +75,8 @@ diff --git a/app/src/main/res/layout/adapter_sign.xml b/app/src/main/res/layout/adapter_sign.xml index 97fc3ea1..eb570520 100644 --- a/app/src/main/res/layout/adapter_sign.xml +++ b/app/src/main/res/layout/adapter_sign.xml @@ -6,13 +6,19 @@ android:background="@drawable/bg_sign" tools:context="com.navinfo.omqs.ui.activity.map.SignAdapter"> + +