|
@@ -4,7 +4,6 @@ import android.app.Activity
|
|
|
import android.content.Intent
|
|
|
import android.os.Bundle
|
|
|
import android.os.Message
|
|
|
-import android.util.Log
|
|
|
import android.view.Menu
|
|
|
import android.view.MenuItem
|
|
|
import android.view.View
|
|
@@ -17,7 +16,6 @@ import androidx.fragment.app.FragmentTransaction
|
|
|
import androidx.lifecycle.lifecycleScope
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
|
import androidx.recyclerview.widget.RecyclerView
|
|
|
-import com.android.volley.toolbox.StringRequest
|
|
|
import com.baidu.mapapi.map.BaiduMap
|
|
|
import com.baidu.mapapi.map.BitmapDescriptorFactory
|
|
|
import com.baidu.mapapi.map.MapStatus
|
|
@@ -29,24 +27,27 @@ import com.baidu.mapapi.map.Polyline
|
|
|
import com.baidu.mapapi.map.PolylineOptions
|
|
|
import com.baidu.mapapi.model.LatLng
|
|
|
import com.baidu.mapapi.model.LatLngBounds
|
|
|
+import com.baidu.mapapi.search.core.SearchResult
|
|
|
+import com.baidu.mapapi.search.geocode.GeoCodeResult
|
|
|
+import com.baidu.mapapi.search.geocode.GeoCoder
|
|
|
+import com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener
|
|
|
+import com.baidu.mapapi.search.geocode.ReverseGeoCodeOption
|
|
|
+import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult
|
|
|
import com.sikey.interconnect.R
|
|
|
import com.sikey.interconnect.app.DataManager
|
|
|
import com.sikey.interconnect.app.DataManager.Companion.checkLoginResponseAndCurrentChildInfo
|
|
|
import com.sikey.interconnect.component.VersionMatch.VersionMatch
|
|
|
import com.sikey.interconnect.component.handler.WeakReferenceHandler
|
|
|
import com.sikey.interconnect.component.log.Logger
|
|
|
-import com.sikey.interconnect.component.network.RequestManager
|
|
|
import com.sikey.interconnect.component.network.http.HttpServiceExecutor
|
|
|
import com.sikey.interconnect.component.network.http.LocationService
|
|
|
import com.sikey.interconnect.component.network.http.RetrofitFactory
|
|
|
import com.sikey.interconnect.component.network.http.model.HistoryLocationRepo
|
|
|
import com.sikey.interconnect.component.network.http.model.Location
|
|
|
-import com.sikey.interconnect.constant.UrlConstants
|
|
|
import com.sikey.interconnect.data.bean.PathTraceBean
|
|
|
import com.sikey.interconnect.k2.entity.DateBean
|
|
|
import com.sikey.interconnect.k2.ui.settings.LocationSettingActivity
|
|
|
import com.sikey.interconnect.k2.utils.FormatUtils
|
|
|
-import com.sikey.interconnect.k2.utils.TextUtils
|
|
|
import com.sikey.interconnect.ui.adapter.DateAdapter
|
|
|
import com.sikey.interconnect.ui.avtivity.base.BaseNoActionBarActivity
|
|
|
import com.sikey.interconnect.ui.fragment.path.TrackSeekBarFragment
|
|
@@ -55,9 +56,6 @@ import com.sikey.interconnect.utils.ToastUtils
|
|
|
import kotlinx.coroutines.Dispatchers
|
|
|
import kotlinx.coroutines.delay
|
|
|
import kotlinx.coroutines.launch
|
|
|
-import org.json.JSONArray
|
|
|
-import org.json.JSONException
|
|
|
-import org.json.JSONObject
|
|
|
import java.text.SimpleDateFormat
|
|
|
import java.util.Calendar
|
|
|
import java.util.Date
|
|
@@ -104,7 +102,6 @@ class MDPathHistoryActivity : BaseNoActionBarActivity(), View.OnClickListener,
|
|
|
//val mapFragment = supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment?
|
|
|
mMapView = findViewById(R.id.bmapView)
|
|
|
map = mMapView?.map
|
|
|
- setMapLoadFinishFlag(true)
|
|
|
map?.mapType = BaiduMap.MAP_TYPE_NORMAL
|
|
|
map?.uiSettings?.isRotateGesturesEnabled = false
|
|
|
val mapStatus = MapStatus.Builder().zoom(16f).build()
|
|
@@ -609,7 +606,6 @@ class MDPathHistoryActivity : BaseNoActionBarActivity(), View.OnClickListener,
|
|
|
}
|
|
|
|
|
|
private fun getGeoAdress() {
|
|
|
- Logger.d(TAG, "getGeoAdress")
|
|
|
if (mCurrentBeanList == null || mCurrentBeanList!!.isEmpty() || mCurrentBeanList!!.size < mCurrentProgress || mCurrentProgress < 1) {
|
|
|
return
|
|
|
}
|
|
@@ -617,47 +613,45 @@ class MDPathHistoryActivity : BaseNoActionBarActivity(), View.OnClickListener,
|
|
|
//mCurrentMarker!!.remove()
|
|
|
}
|
|
|
val bean = mCurrentBeanList!![mCurrentProgress - 1]
|
|
|
- val latlng = bean.lat + "," + bean.lng
|
|
|
- Log.d(
|
|
|
- TAG,
|
|
|
- "url = " + UrlConstants.GOOGLE_GEO_ADRESS + "?latlng=" + latlng + getString(R.string.param_google_maps_key)
|
|
|
- )
|
|
|
- val request = StringRequest(
|
|
|
- UrlConstants.GOOGLE_GEO_ADRESS + "?latlng=" + latlng + getString(R.string.param_google_maps_key),
|
|
|
- { response ->
|
|
|
- try {
|
|
|
-// Log.d(TAG, "response=$response")
|
|
|
- val jsonObject = JSONObject(response)
|
|
|
- val status = jsonObject.getString("status")
|
|
|
- Log.d(TAG, "status=$status")
|
|
|
- if ("OK" == status) {
|
|
|
- val results = jsonObject.getString("results")
|
|
|
- val jsonArray = JSONArray(results)
|
|
|
- val length = jsonArray.length()
|
|
|
- Logger.d(TAG, "jsonArray.length(): " + jsonArray.length())
|
|
|
- for (i in 0 until length) {
|
|
|
- val jsonObject2 = jsonArray.getJSONObject(i)
|
|
|
- val formatted_address = jsonObject2.getString("formatted_address")
|
|
|
- Logger.i(TAG, "formatted_address: $formatted_address")
|
|
|
- if (i == 0) {
|
|
|
-
|
|
|
- var mAddressStr = formatted_address
|
|
|
- if (TextUtils.isEmpty(mAddressStr)) {
|
|
|
- mAddressStr = resources.getString(R.string.locating_tip)
|
|
|
- }
|
|
|
- mTrackSeekBarFrag?.setAddress(mAddressStr)
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (e: JSONException) {
|
|
|
- e.printStackTrace()
|
|
|
+ val geoCoder = GeoCoder.newInstance()
|
|
|
+ geoCoder.setOnGetGeoCodeResultListener(object : OnGetGeoCoderResultListener {
|
|
|
+ override fun onGetGeoCodeResult(result: GeoCodeResult?) {
|
|
|
+ if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
|
|
|
+ Logger.d(TAG, "地理编码失败: ${result?.error}")
|
|
|
+ return
|
|
|
}
|
|
|
- }) { error ->
|
|
|
- Logger.i(TAG, "add err==" + error.message)
|
|
|
- /* ToastUtils.showLongToast(R.string.network_exception) */
|
|
|
+ val latLng = result.location
|
|
|
+ val address = result.address
|
|
|
+ Logger.d(TAG, "地理编码结果: 地址=$address, 经纬度=$latLng")
|
|
|
+ }
|
|
|
+
|
|
|
+ override fun onGetReverseGeoCodeResult(result: ReverseGeoCodeResult?) {
|
|
|
+ if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
|
|
|
+ Logger.e(TAG, "逆地理编码失败: ${result?.error}")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 获取逆地理编码结果
|
|
|
+ val address = result.address
|
|
|
+ val poiList = result.poiList
|
|
|
+ Logger.d(TAG, "逆地理编码结果: 地址=$address, 格式化地址=${result.formattedPoiAddress}, 附近POI=$poiList")
|
|
|
+ if (result.error == SearchResult.ERRORNO.NO_ERROR) {
|
|
|
+ result.formattedPoiAddress?.let { mTrackSeekBarFrag?.setAddress(it) }
|
|
|
+ setMapLoadFinishFlag(true)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ val latLng = LatLng(
|
|
|
+ bean.lat.toDouble(), bean.lng.toDouble())
|
|
|
+
|
|
|
+ // 发起逆地理编码请求
|
|
|
+ latLng.let {
|
|
|
+ val reverseGeoCodeOption = ReverseGeoCodeOption()
|
|
|
+ .location(it)
|
|
|
+ .radius(200)
|
|
|
+ .newVersion(1)
|
|
|
+ geoCoder.reverseGeoCode(reverseGeoCodeOption)
|
|
|
}
|
|
|
- RequestManager.getInstance(this).addToRequestQueue(request)
|
|
|
}
|
|
|
|
|
|
private var inited = false
|