Commit 7552d1f8 authored by 马乐's avatar 马乐

1.地图异步加载

parent baa0be8d
package com.waytous.anticollision.repository
import android.content.Context
import androidx.annotation.RequiresPermission
import androidx.room.Room
import com.blankj.utilcode.util.LogUtils
import com.waytous.anticollision.api.MapSourceService
......
......@@ -95,7 +95,10 @@ class MainViewModel @Inject constructor(private val mainRepository: MainReposito
fun runnableAreaSource() = flowOf(
mainRepository.localRunnableAreaVersion(),
mainRepository.remoteRunnableAreaVersion()
).flattenMerge()
).onStart {
LogUtils.dTag("MainViewModel","runnableAreaSource start")
}
.flattenMerge()
.transformWhile {
emit(it.mapDataSource)
!it.abort
......
......@@ -6,19 +6,10 @@ import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.databinding.adapters.ZoomControlsBindingAdapter
import androidx.fragment.app.viewModels
import androidx.lifecycle.ViewModelProvider
import com.blankj.utilcode.util.LogUtils
import com.mapbox.maps.CameraOptions
import com.mapbox.maps.MapView
import com.mapbox.maps.extension.style.expressions.dsl.generated.image
import com.mapbox.maps.extension.style.layers.generated.backgroundLayer
import com.mapbox.maps.plugin.animation.camera
import com.mapbox.maps.plugin.attribution.attribution
import com.mapbox.maps.plugin.compass.compass
import com.mapbox.maps.plugin.logo.logo
import com.mapbox.maps.plugin.scalebar.scalebar
import com.waytous.anticollision.R
import com.waytous.anticollision.databinding.FragmentHomeBinding
import com.waytous.anticollision.repository.MainRepository
......@@ -27,7 +18,6 @@ import com.waytous.anticollision.ui.MainViewModel
import com.waytous.anticollision.ui.view.MoreFeaturesPopup
import com.waytous.anticollision.ui.view.WorkStatusEditPopup
import com.waytous.anticollision.utils.setTextSize
import java.math.BigDecimal
class HomeFragment : BaseFragment() {
......@@ -69,39 +59,9 @@ class HomeFragment : BaseFragment() {
it.maskOffsetY = 20
it.setBackgroundColor(R.color.color_99000000)
}
mapView = binding.root.findViewById<MapView?>(R.id.mapView).also { it ->
it.logo.enabled = false
it.compass.enabled = false
it.attribution.enabled = false
}
binding.defaultMapLayout.zoomIn.setOnClickListener {
LogUtils.d("zoomIn level = ${mapView.getMapboxMap().cameraState.zoom}")
val zoomLevel = BigDecimal(mapView.getMapboxMap().cameraState.zoom).minus(BigDecimal(0.1.toString()))
when(BigDecimal(MINIMUM_ZOOM_LEVEL.toString()).compareTo(zoomLevel)){
-1->{
mapView.getMapboxMap().setCamera(CameraOptions.Builder().zoom(zoomLevel.toDouble()).build())
}
else ->{
mapView.getMapboxMap().setCamera(CameraOptions.Builder().zoom(DEFAULT_ZOOM_LEVEL).build())
}
}
}
binding.defaultMapLayout.zoomOut.setOnClickListener {
LogUtils.d("zoomOut level = ${mapView.getMapboxMap().cameraState.zoom}")
val zoomLevel = BigDecimal(mapView.getMapboxMap().cameraState.zoom).add(BigDecimal(0.1.toString()))
when(BigDecimal(MAXIMUM_ZOOM_LEVEL.toString()).compareTo(zoomLevel)){
-1->{
mapView.getMapboxMap().setCamera(CameraOptions.Builder().zoom(DEFAULT_ZOOM_LEVEL).build())
}
else ->{
mapView.getMapboxMap().setCamera(CameraOptions.Builder().zoom(zoomLevel.toDouble()).build())
}
}
}
updateMapBox(mapView)
mapView.addRendererSetupErrorListener { error ->
LogUtils.e("RendererSetupErrorListener:${error}")
}
LogUtils.d("HomeFragment.onCreateView")
setupMapBox()
binding.defaultMapLayout.addView(layoutMapBoxBinding.root)
setTodayCarriedNum(18)
setTodayIllegallyNum(1)
binding.workStatusEdit.setOnClickListener {
......@@ -127,6 +87,7 @@ class HomeFragment : BaseFragment() {
override fun onDestroyView() {
super.onDestroyView()
binding.defaultMapLayout.removeView(layoutMapBoxBinding.root)
_binding = null
}
......
......@@ -282,9 +282,8 @@
app:layout_constraintTop_toTopOf="@id/defaultToggleMore"
app:layout_constraintEnd_toEndOf="@id/defaultMapLayout" />
<include
<FrameLayout
android:id="@+id/defaultMapLayout"
layout="@layout/layout_map_box"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginEnd="16dp"
......
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