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

1

parent ec6a5728
......@@ -55,7 +55,7 @@ dependencies {
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
implementation(project(":mapapi"))
api(project(":mapapi"))
implementation("com.google.code.gson:gson:2.12.0")
// ViewModel ktx
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2")
......
package com.sd.demo.adapter
//import kotlinx.android.synthetic.main.poi_search_list_item.view.*
import android.content.Context
import android.graphics.Color
import android.text.SpannableString
......@@ -10,10 +11,9 @@ import android.view.ViewGroup
import androidx.core.text.set
import androidx.recyclerview.widget.RecyclerView
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.demo.utils.MyGeoTools
import com.sd.demo.databinding.PoiSearchListItemBinding
......@@ -59,13 +59,11 @@ class PoiAdapter : BaseQuickAdapter<PoiSearchRes, PoiAdapter.PoiSH>() {
binding.poiDes.text = bean.snippet
// binding.tvDistan.text=bean.distance.toString()
if (bean.distance == 0){
val distanceBean: DistanceBean = MyGeoTools.cauMyLocDistance(0.0,0.0,bean.lat, bean.lng)
binding.tvDistan.text = "${distanceBean.distanceValue}${distanceBean.distanceUnit}"
}else{
binding.tvDistan.text = "${bean.distance}米"
}
// 计算2点距离
var latLng1 = MSLatLng(39.787678, 116.518766)
var latLng2 = MSLatLng(bean.lat, bean.lng)
var dis = MSCalcuMapUtil.calculateLineDistance(latLng1, latLng2)
binding.tvDistan.text = "${dis}米"
}
fun setListener() {
......
......@@ -29,12 +29,18 @@ class CalculateDistanceActivity : AppCompatActivity() {
//计算2点距离
binding.bt1.setOnClickListener {
var latLng1=MSLatLng(binding.et1.text.toString().toDouble(),binding.et2.text.toString().toDouble())
var latLng2=MSLatLng(binding.et3.text.toString().toDouble(),binding.et4.text.toString().toDouble())
var latLng1 = MSLatLng(
binding.et1.text.toString().toDouble(),
binding.et2.text.toString().toDouble()
)
var latLng2 = MSLatLng(
binding.et3.text.toString().toDouble(),
binding.et4.text.toString().toDouble()
)
// 计算2点距离
var dis=MSCalcuMapUtil.calculateLineDistance(latLng1,latLng2)
var dis = MSCalcuMapUtil.calculateLineDistance(latLng1, latLng2)
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