增加经纬度定位功能

This commit is contained in:
squallzhjch 2023-05-26 14:01:36 +08:00
parent 59bc0f544b
commit 10ec7a1e04
3 changed files with 36 additions and 11 deletions

View File

@ -4,11 +4,12 @@ import android.app.Activity
import android.content.Intent import android.content.Intent
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.PersistableBundle
import android.speech.tts.TextToSpeech import android.speech.tts.TextToSpeech
import android.util.Log import android.util.Log
import android.view.MotionEvent import android.view.MotionEvent
import android.view.View import android.view.View
import android.widget.EditText
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
@ -18,9 +19,7 @@ import androidx.lifecycle.lifecycleScope
import androidx.navigation.findNavController import androidx.navigation.findNavController
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.blankj.utilcode.util.SPStaticUtils import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.navinfo.collect.library.map.NIMapController import com.navinfo.collect.library.map.NIMapController
import com.navinfo.omqs.Constant import com.navinfo.omqs.Constant
import com.navinfo.omqs.R 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.http.offlinemapdownload.OfflineMapDownloadManager
import com.navinfo.omqs.tools.LayerConfigUtils import com.navinfo.omqs.tools.LayerConfigUtils
import com.navinfo.omqs.ui.activity.BaseActivity 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.FlowEventBus
import com.navinfo.omqs.util.SpeakMode
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import com.navinfo.omqs.ui.widget.RecyclerViewSpacesItemDecoration
import com.navinfo.omqs.util.SpeakMode
import org.videolan.vlc.Util import org.videolan.vlc.Util
import java.math.BigDecimal import java.math.BigDecimal
import java.math.RoundingMode 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<EditText>(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() { override fun onStart() {
super.onStart() super.onStart()

View File

@ -124,7 +124,7 @@ class EvaluationResultViewModel @Inject constructor(
geoPoint?.let { geoPoint?.let {
liveDataQsRecordBean.value!!.geometry = GeometryTools.createGeometry(it).toText() liveDataQsRecordBean.value!!.geometry = GeometryTools.createGeometry(it).toText()
mapController.markerHandle.addMarker(geoPoint, markerTitle) mapController.markerHandle.addMarker(geoPoint, markerTitle)
mapController.animationHandler.animationByLonLat( mapController.animationHandler.animationByLatLon(
geoPoint.latitude, geoPoint.longitude geoPoint.latitude, geoPoint.longitude
) )
viewModelScope.launch { viewModelScope.launch {
@ -147,7 +147,7 @@ class EvaluationResultViewModel @Inject constructor(
} }
val point = GeometryTools.createGeoPoint(bean.geometry) val point = GeometryTools.createGeoPoint(bean.geometry)
this.geometry = GeometryTools.createGeometry(point).toText() 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) mapController.markerHandle.addMarker(point, markerTitle)
} }
} }

View File

@ -1,6 +1,5 @@
package com.navinfo.collect.library.map.handler package com.navinfo.collect.library.map.handler
import android.content.Context
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import com.navinfo.collect.library.map.NIMapView import com.navinfo.collect.library.map.NIMapView
import org.oscim.core.BoundingBox import org.oscim.core.BoundingBox
@ -32,7 +31,7 @@ open class AnimationHandler(context: AppCompatActivity, mapView: NIMapView) :
* latitude longitude经纬度 * 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)) mMapView.vtmMap.animator().animateTo(time, GeoPoint(latitude, longitude))
} }