Я сейчас сталкиваюсь с этой проблемой [Это вы можете видеть на картинке ниже)
Как я могу кластеризовать все свои маркеры, чтобы показатьтолько 5 наших 6 БОЛЬШИХ маркеров в начале указывают, где находятся маркеры, и если я увеличиваю, он увеличивает количество маркеров, а размер маркеров уменьшается.
Это мой код
Это мойMapFragment
class MapFragment: BaseFragment<FragmentMapBinding, MapViewModel>(),OnMapReadyCallback , GoogleMap.OnCameraMoveListener{
private var stationList = mutableListOf<Station>()
override fun onCameraMove() {
}
lateinit var mGoogleMaps:GoogleMap
override fun onMapReady(googleMap: GoogleMap) {
MapsInitializer.initialize(context )
mGoogleMaps = googleMap
googleMap.mapType = GoogleMap.MAP_TYPE_NORMAL
}
companion object {
fun newInstance() = MapFragment()
}
@Inject
lateinit var viewModelFactory: ViewModelProvider.Factory
override fun layoutToInflate() = R.layout.fragment_map
override fun defineViewModel() = ViewModelProviders.of(this, viewModelFactory).get(MapViewModel::class.java)
override fun doOnCreated() {
mapView.onCreate(null)
mapView.onResume()
mapView.getMapAsync(this)
viewModel.getStations(activity?.supportFragmentManager!!, R.id.fragment_container, context!!)
viewModel.retrieveStations().observe(this, Observer<List<Station>> {
addItems(it)
for (i in 0 until stationList.size) {
val name = LatLng(stationList[i].latitude, stationList[i].longitude)
mGoogleMaps.addMarker(MarkerOptions()
.position(name)
//.title(name)
//.snippet(name.toString() + " is cool")
// .icon(BitmapDescriptorFactory
// .fromResource(R.drawable.ic_map_pin )))
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_CYAN)))
}
})
}
fun addItems(items: List<Station>){
stationList.addAll(items)
}
Другие классы, соответствующие этому, являются запросами API, поэтому для краткости кода я получаю все long и lat от каждой станции от API.Я видел кластер утилит Google Maps, но я не могу заставить это работать.Может кто-нибудь помочь?
Это моя модель
data class Station(
val id: Int,
val name: String,
val latitude: Double,
val longitude: Double,
val address: String,
val post_code: String,
val location: String,
val serviceStore: Int,
val serviceMechanicalWorkshop: Int,
val serviceRestaurant: Int,
val serviceWash: Int
)