Commit 9554a195 authored by p x's avatar p x
Browse files

1

parent ec6a5728
...@@ -55,7 +55,7 @@ dependencies { ...@@ -55,7 +55,7 @@ dependencies {
androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core) androidTestImplementation(libs.androidx.espresso.core)
implementation(project(":mapapi")) api(project(":mapapi"))
implementation("com.google.code.gson:gson:2.12.0") implementation("com.google.code.gson:gson:2.12.0")
// ViewModel ktx // ViewModel ktx
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2") implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2")
......
package com.sd.demo.adapter package com.sd.demo.adapter
//import kotlinx.android.synthetic.main.poi_search_list_item.view.* //import kotlinx.android.synthetic.main.poi_search_list_item.view.*
import android.content.Context import android.content.Context
import android.graphics.Color import android.graphics.Color
import android.text.SpannableString import android.text.SpannableString
...@@ -10,10 +11,9 @@ import android.view.ViewGroup ...@@ -10,10 +11,9 @@ import android.view.ViewGroup
import androidx.core.text.set import androidx.core.text.set
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.chad.library.adapter4.BaseQuickAdapter import com.chad.library.adapter4.BaseQuickAdapter
import com.minedata.minenavi.addons.DistanceBean import com.sd.api.maps.MSCalcuMapUtil
import com.sd.api.maps.cdata.MSLatLng
import com.sd.api.maps.cdata.PoiSearchRes import com.sd.api.maps.cdata.PoiSearchRes
import com.sd.demo.utils.MyGeoTools
import com.sd.demo.databinding.PoiSearchListItemBinding import com.sd.demo.databinding.PoiSearchListItemBinding
...@@ -59,13 +59,11 @@ class PoiAdapter : BaseQuickAdapter<PoiSearchRes, PoiAdapter.PoiSH>() { ...@@ -59,13 +59,11 @@ class PoiAdapter : BaseQuickAdapter<PoiSearchRes, PoiAdapter.PoiSH>() {
binding.poiDes.text = bean.snippet binding.poiDes.text = bean.snippet
// binding.tvDistan.text=bean.distance.toString() // binding.tvDistan.text=bean.distance.toString()
if (bean.distance == 0){ // 计算2点距离
val distanceBean: DistanceBean = MyGeoTools.cauMyLocDistance(0.0,0.0,bean.lat, bean.lng) var latLng1 = MSLatLng(39.787678, 116.518766)
binding.tvDistan.text = "${distanceBean.distanceValue}${distanceBean.distanceUnit}" var latLng2 = MSLatLng(bean.lat, bean.lng)
}else{ var dis = MSCalcuMapUtil.calculateLineDistance(latLng1, latLng2)
binding.tvDistan.text = "${bean.distance}米" binding.tvDistan.text = "${dis}米"
}
} }
fun setListener() { fun setListener() {
......
...@@ -29,12 +29,18 @@ class CalculateDistanceActivity : AppCompatActivity() { ...@@ -29,12 +29,18 @@ class CalculateDistanceActivity : AppCompatActivity() {
//计算2点距离 //计算2点距离
binding.bt1.setOnClickListener { binding.bt1.setOnClickListener {
var latLng1=MSLatLng(binding.et1.text.toString().toDouble(),binding.et2.text.toString().toDouble()) var latLng1 = MSLatLng(
var latLng2=MSLatLng(binding.et3.text.toString().toDouble(),binding.et4.text.toString().toDouble()) binding.et1.text.toString().toDouble(),
binding.et2.text.toString().toDouble()
)
var latLng2 = MSLatLng(
binding.et3.text.toString().toDouble(),
binding.et4.text.toString().toDouble()
)
// 计算2点距离 // 计算2点距离
var dis=MSCalcuMapUtil.calculateLineDistance(latLng1,latLng2) var dis = MSCalcuMapUtil.calculateLineDistance(latLng1, latLng2)
println("----计算2点距离 = ${dis}米") println("----计算2点距离 = ${dis}米")
ToastHelper.showShort(this@CalculateDistanceActivity,"距离= ${dis}米") ToastHelper.showShort(this@CalculateDistanceActivity, "距离= ${dis}米")
} }
} }
......
package com.sd.demo.utils
import android.location.Location
import com.minedata.minenavi.addons.DistanceBean
object MyGeoTools {
/**
* 计算我的位置到目标的直线距离
* @param flat 起点纬度
* @param flng 起点经度
* @param lat 目标点纬度
* @param lng 目标点经度
* @return 距离信息对象,包含格式化后的距离数据
*/
fun cauMyLocDistance(flat: Double, flng: Double, lat: Double, lng: Double): DistanceBean {
if (flng == 0.0 || flng == 0.0) {
return DistanceBean("0","")
}
var mUtils = Utils()
var results = FloatArray(1)
// 使用Android Location API计算两点间直线距离
Location.distanceBetween(
flat,
flng,
lat,
lng,
results
)
var distanceInMeters = results[0]
// 将距离转换为整数并格式化为距离对象
val distanceBean: DistanceBean = mUtils.formatDistance(distanceInMeters.toInt(), false)
return distanceBean
}
}
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment