Commit baa0be8d authored by 马乐's avatar 马乐

1.增加地图annotation

parent caa4d969
......@@ -2,14 +2,22 @@ package com.waytous.anticollision
import android.content.Intent
import android.os.Bundle
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.viewModels
import com.blankj.utilcode.util.BarUtils
import com.blankj.utilcode.util.ColorUtils
import com.waytous.anticollision.databinding.ActivitySplashBinding
import com.waytous.anticollision.repository.MainRepository
import com.waytous.anticollision.ui.MainActivity
import com.waytous.anticollision.ui.MainViewModel
class SplashActivity : AppCompatActivity() {
private val mapModel: MainViewModel by viewModels{
MainViewModel.MainViewModelFactory(MainRepository(this))
}
private lateinit var binding:ActivitySplashBinding
override fun onCreate(savedInstanceState: Bundle?) {
......@@ -29,4 +37,6 @@ class SplashActivity : AppCompatActivity() {
},2000)
}
}
\ No newline at end of file
package com.waytous.anticollision.ui.home
import android.graphics.Color
import android.os.Bundle
import android.text.SpannableString
import android.util.Log
import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.ImageView
import android.widget.TextView
import androidx.databinding.adapters.ZoomControlsBindingAdapter
import androidx.fragment.app.viewModels
import androidx.lifecycle.*
import androidx.lifecycle.ViewModelProvider
import com.blankj.utilcode.util.LogUtils
import com.mapbox.geojson.Point
import com.mapbox.maps.CameraOptions
import com.mapbox.maps.MapView
import com.mapbox.maps.MapboxMap
import com.mapbox.maps.extension.style.expressions.dsl.generated.get
import com.mapbox.maps.extension.style.layers.generated.circleLayer
import com.mapbox.maps.extension.style.layers.generated.fillLayer
import com.mapbox.maps.extension.style.layers.generated.lineLayer
import com.mapbox.maps.extension.style.layers.generated.symbolLayer
import com.mapbox.maps.extension.style.layers.properties.generated.LineCap
import com.mapbox.maps.extension.style.layers.properties.generated.LineJoin
import com.mapbox.maps.extension.style.layers.properties.generated.TextAnchor
import com.mapbox.maps.extension.style.layers.properties.generated.TextRotationAlignment
import com.mapbox.maps.extension.style.layers.properties.generated.Visibility
import com.mapbox.maps.extension.style.sources.generated.geoJsonSource
import com.mapbox.maps.extension.style.style
import com.mapbox.maps.plugin.annotation.generated.PointAnnotation
import com.mapbox.maps.plugin.annotation.generated.PointAnnotationManager
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.mapbox.maps.viewannotation.ViewAnnotationManager
import com.waytous.anticollision.R
import com.waytous.anticollision.databinding.FragmentHomeBinding
import com.waytous.anticollision.repository.MainRepository
......@@ -44,22 +26,8 @@ import com.waytous.anticollision.ui.BaseFragment
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.addBarricadeSource
import com.waytous.anticollision.utils.addDiggingWorkAreaSource
import com.waytous.anticollision.utils.addDumpAreaSource
import com.waytous.anticollision.utils.addElectronicFenceSource
import com.waytous.anticollision.utils.addLaneNodeSource
import com.waytous.anticollision.utils.addLaneSource
import com.waytous.anticollision.utils.addObstaclesSource
import com.waytous.anticollision.utils.addParkSpotSource
import com.waytous.anticollision.utils.addRunnableAreaSource
import com.waytous.anticollision.utils.addStaticObjectsSource
import com.waytous.anticollision.utils.addStationAreaSource
import com.waytous.anticollision.utils.addTruckPathSource
import com.waytous.anticollision.utils.addWetAreaSource
import com.waytous.anticollision.utils.setTextSize
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.launch
import java.math.BigDecimal
class HomeFragment : BaseFragment() {
......@@ -75,6 +43,8 @@ class HomeFragment : BaseFragment() {
private lateinit var workStatusEditPopup: WorkStatusEditPopup
private val mapModel: MainViewModel by viewModels {
MainViewModel.MainViewModelFactory(MainRepository(requireContext()))
}
......@@ -103,9 +73,31 @@ class HomeFragment : BaseFragment() {
it.logo.enabled = false
it.compass.enabled = false
it.attribution.enabled = false
it.scalebar.enabled = false
}
initAnnotationManager(mapView)
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}")
......
......@@ -26,15 +26,17 @@
app:layout_constraintTop_toTopOf="parent"
app:mapbox_resourcesAccessToken="@string/map_box_public_key"
app:mapbox_scaleBarBorderWidth="0dp"
app:mapbox_scaleBarGravity="bottom|end"
app:mapbox_scaleBarHeight="@dimen/dp_6"
app:mapbox_scaleBarHeight="5dp"
app:mapbox_scaleBarGravity="bottom|right"
app:mapbox_scaleBarIsMetricUnits="true"
app:mapbox_scaleBarMarginBottom="15dp"
app:mapbox_scaleBarMarginRight="24dp"
app:mapbox_scaleBarMarginBottom="38dp"
app:mapbox_scaleBarMarginRight="0dp"
app:mapbox_scaleBarPrimaryColor="@color/black"
app:mapbox_scaleBarSecondaryColor="@android:color/transparent"
app:mapbox_scaleBarShowTextBorder="false"
app:mapbox_scaleBarTextBarMargin="10dp"
app:mapbox_scaleBarTextBorderWidth="5dp"
app:mapbox_scaleBarTextColor="@color/home_text_color"
app:mapbox_scaleBarTextSize="@dimen/dp_18" />
app:mapbox_scaleBarTextColor="@android:color/black"
app:mapbox_scaleBarTextSize="10dp" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/sos"
......
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