18034727885
2026-08-18 6f2d06f779b9af1b179aa5be930f675db860816d
app/src/main/java/com/igo/user/utils/google/AMapKit.kt
@@ -11,6 +11,7 @@
import android.view.View
import android.widget.Toast
import androidx.core.content.ContextCompat
import cn.sinata.rxnetty.LogHelper
import cn.sinata.xldutils.utils.LanguageUtil
import com.google.android.gms.common.api.ApiException
import com.google.android.gms.common.util.CollectionUtils.listOf
@@ -162,9 +163,13 @@
        return aMap.addPolyline(options)
    }
    fun drawLine(context: Context, aMap: ConsumerGoogleMap, latLngs: List<LatLng?>?): Polyline? {
        val options = PolylineOptions().addAll(latLngs!!).width(20f)
            .color(ContextCompat.getColor(context, R.color.quantum_googgreen500))
    fun drawLine(context: Context, aMap: ConsumerGoogleMap, latLngs: List<LatLng>): Polyline {
        return drawLine(context, aMap, latLngs, R.color.quantum_googgreen500)
    }
    fun drawLine(context: Context, aMap: ConsumerGoogleMap, latLngs: List<LatLng>, colorRes: Int): Polyline {
        val options = PolylineOptions().addAll(latLngs).width(20f)
            .color(ContextCompat.getColor(context, colorRes))
        return aMap.addPolyline(options)
    }
@@ -353,10 +358,10 @@
                "&waypoints=" + centerStr +
                "&region=" + language +
                "&key=" + Const.google_key
        getClient(url) {
            val googleBean = Gson().fromJson<GoogleRouteBean>(it, GoogleRouteBean::class.java)
            if (googleBean.routes.isNullOrEmpty()) {
                LogHelper.logRecord("规划路线为空")
                return@getClient
            }
            val bean = googleBean.routes.first()
@@ -448,18 +453,28 @@
            .url(url)
            .method("GET", null)
            .build()
        LogHelper.logRecord("请求谷歌服务器 $url")
        val subscribe = Observable.just(request)
            .map { request -> client.newCall(request).execute() }
            .map { request -> client.newCall(request).execute().body()?.string() ?: "" }
            .retry(retryCount.toLong())   // 最多额外重试 3 次(加上首次共 4 次尝试)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe({
                try {
                    function(it.body()?.string() ?: "")
                    if (it.isEmpty()) {
                        LogHelper.logRecord("请求谷歌服务器成功 获取结果异常为空")
                        return@subscribe
                    }
                    function(it)
                    LogHelper.logRecord("请求谷歌服务器成功")
                } catch (e: Exception) {
                    e.printStackTrace()
                    LogHelper.logRecord("请求谷歌服务器成功,获取结果异常报错 message:${e.message},stackTrace:${e.stackTraceToString()}")
                }
            }, { throwable -> throwable.printStackTrace() })
            }, { throwable ->
                throwable.printStackTrace()
                LogHelper.logRecord("请求谷歌服务器异常报错 message:${throwable.message},stackTrace:${throwable.stackTraceToString()}")
            })
    }
    /***