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

1.地图异步加载

parent baa0be8d
package com.waytous.anticollision.repository package com.waytous.anticollision.repository
import android.content.Context import android.content.Context
import androidx.annotation.RequiresPermission
import androidx.room.Room import androidx.room.Room
import com.blankj.utilcode.util.LogUtils import com.blankj.utilcode.util.LogUtils
import com.waytous.anticollision.api.MapSourceService import com.waytous.anticollision.api.MapSourceService
......
...@@ -95,7 +95,10 @@ class MainViewModel @Inject constructor(private val mainRepository: MainReposito ...@@ -95,7 +95,10 @@ class MainViewModel @Inject constructor(private val mainRepository: MainReposito
fun runnableAreaSource() = flowOf( fun runnableAreaSource() = flowOf(
mainRepository.localRunnableAreaVersion(), mainRepository.localRunnableAreaVersion(),
mainRepository.remoteRunnableAreaVersion() mainRepository.remoteRunnableAreaVersion()
).flattenMerge() ).onStart {
LogUtils.dTag("MainViewModel","runnableAreaSource start")
}
.flattenMerge()
.transformWhile { .transformWhile {
emit(it.mapDataSource) emit(it.mapDataSource)
!it.abort !it.abort
......
...@@ -6,19 +6,10 @@ import android.view.Gravity ...@@ -6,19 +6,10 @@ import android.view.Gravity
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.databinding.adapters.ZoomControlsBindingAdapter
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import com.blankj.utilcode.util.LogUtils import com.blankj.utilcode.util.LogUtils
import com.mapbox.maps.CameraOptions
import com.mapbox.maps.MapView 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.R
import com.waytous.anticollision.databinding.FragmentHomeBinding import com.waytous.anticollision.databinding.FragmentHomeBinding
import com.waytous.anticollision.repository.MainRepository import com.waytous.anticollision.repository.MainRepository
...@@ -27,7 +18,6 @@ import com.waytous.anticollision.ui.MainViewModel ...@@ -27,7 +18,6 @@ import com.waytous.anticollision.ui.MainViewModel
import com.waytous.anticollision.ui.view.MoreFeaturesPopup import com.waytous.anticollision.ui.view.MoreFeaturesPopup
import com.waytous.anticollision.ui.view.WorkStatusEditPopup import com.waytous.anticollision.ui.view.WorkStatusEditPopup
import com.waytous.anticollision.utils.setTextSize import com.waytous.anticollision.utils.setTextSize
import java.math.BigDecimal
class HomeFragment : BaseFragment() { class HomeFragment : BaseFragment() {
...@@ -69,39 +59,9 @@ class HomeFragment : BaseFragment() { ...@@ -69,39 +59,9 @@ class HomeFragment : BaseFragment() {
it.maskOffsetY = 20 it.maskOffsetY = 20
it.setBackgroundColor(R.color.color_99000000) it.setBackgroundColor(R.color.color_99000000)
} }
mapView = binding.root.findViewById<MapView?>(R.id.mapView).also { it -> LogUtils.d("HomeFragment.onCreateView")
it.logo.enabled = false setupMapBox()
it.compass.enabled = false binding.defaultMapLayout.addView(layoutMapBoxBinding.root)
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}")
}
setTodayCarriedNum(18) setTodayCarriedNum(18)
setTodayIllegallyNum(1) setTodayIllegallyNum(1)
binding.workStatusEdit.setOnClickListener { binding.workStatusEdit.setOnClickListener {
...@@ -127,6 +87,7 @@ class HomeFragment : BaseFragment() { ...@@ -127,6 +87,7 @@ class HomeFragment : BaseFragment() {
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
binding.defaultMapLayout.removeView(layoutMapBoxBinding.root)
_binding = null _binding = null
} }
......
...@@ -282,9 +282,8 @@ ...@@ -282,9 +282,8 @@
app:layout_constraintTop_toTopOf="@id/defaultToggleMore" app:layout_constraintTop_toTopOf="@id/defaultToggleMore"
app:layout_constraintEnd_toEndOf="@id/defaultMapLayout" /> app:layout_constraintEnd_toEndOf="@id/defaultMapLayout" />
<include <FrameLayout
android:id="@+id/defaultMapLayout" android:id="@+id/defaultMapLayout"
layout="@layout/layout_map_box"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_marginEnd="16dp" 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