Как добавить карту с маркером к элементу адаптера в android?


Я добавил mapview в макет. Как установить маркер карты динамически на основе элементов в списке?

<com.google.android.gms.maps.MapView
                xmlns:map="http://schemas.android.com/apk/res-auto"
                android:id="@+id/map"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                map:cameraZoom="15"
                map:liteMode="false"
                map:mapType="normal" />
2 2

2 ответа:

В onBindViewHolder для вашего вида карты реализуйте OnMapReadyCallback и переопределите onMapReady ().

Что-то вроде этого:

holder.mMapView.getMapAsync(new OnMapReadyCallback()
{
    @Override
    public void onMapReady(GoogleMap googleMap) {
        holder.mMapView = googleMap;

        if (holder.mMapView != null) {
            holder.mMapView.addMarker(...);
        }
    }
}

Вы можете сделать это, используя Lat и Lng для нужного положения, чтобы поставить маркер.

fun addMarker(latLng: LatLng) {

val options = MarkerOptions().position(latLng)
        .icon(BitmapDescriptorFactory.fromResource(R.drawable.icon))

map.addMarker(options)
}