Как кластеризовать маркеры на карте Google с помощью утилит kotlin и google maps - PullRequest
0 голосов
/ 17 ноября 2018

Я сейчас сталкиваюсь с этой проблемой [Это вы можете видеть на картинке ниже)

Too many markers picture

Как я могу кластеризовать все свои маркеры, чтобы показатьтолько 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
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...