diff --git a/.gitmodules b/.gitmodules index 307a0843..48596a20 100644 --- a/.gitmodules +++ b/.gitmodules @@ -2,3 +2,4 @@ path = vtm url = git@github.com:xiaoyan159/vtm.git branch = master + 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 e25cf6e9..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 @@ -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 @@ -202,10 +200,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 { @@ -218,6 +216,38 @@ 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 = "请输入经纬度例如:\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.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() + } + + override fun onStart() { super.onStart() 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/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/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt b/app/src/main/java/com/navinfo/omqs/ui/fragment/evaluationresult/EvaluationResultViewModel.kt index 69ca2321..99158c55 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 @@ -126,7 +126,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 { @@ -149,7 +149,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/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index dbb9e2a5..78ced960 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -75,7 +75,8 @@ @@ -177,6 +178,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" /> 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"> + + --> + \ No newline at end of file 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)) }