Два разных infoWindow для разных маркеров

144
26 января 2021, 01:40

Всем привет,подскажите пожалуйста,как можно для разных групп маркеров,создающихся через

     Map<String, Marker> artefacts = new HashMap();
        Marker Artefact;
Artefact = mMap.addMarker(new MarkerOptions()
                            .position(new LatLng(a_lat, a_lon)) //setting position
                            .draggable(false)
                            .title(name)
                            .snippet(a_key)
                            .icon(icon)); //Adding a title
                artefacts.put(dataSnapshot.getKey(), Artefact);

и через

Map<String, Marker> markers = new HashMap();
test = BitmapDescriptorFactory.fromResource(R.mipmap.me);
                        Marker uAmarker  = mMap.addMarker(new MarkerOptions()
                                .position(new LatLng(latitude, lontitude)) //setting position
                                .draggable(false)
                                .title("Моя позиция")
                                .icon(test)); //Adding a title
                        markers.put(dataSnapshot.getKey(), uAmarker);

Сделать разные infoWindow? То есть чтобы у каждой "группы" был свой дизайн и т.п

Answer 1

Создайте свой класс, чтобы управлять маркерами и примените к нему GoogleMap.InfoWindowAdapter, а маркером управляйте в getInfoContents(Marker marker)

Например,

public class MapInfoWindowAdapter implements GoogleMap.InfoWindowAdapter{
  private Context context;
  private View myView;
  ... 
    @Override
    public View getInfoContents(Marker marker) {
       LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
       //получаем маркер проверяем его на что-то и строим нужный View            
       if(marker.getTitle().equals("Я")){
           myView = inflater.inflate(R.layout.infowindow1, null);
       }else
            myView = inflater.inflate(R.layout.infowindow2, null);
       return myContentsView;
    }
}
READ ALSO
Dragenter срабатывает на другие элементы

Dragenter срабатывает на другие элементы

Делаю drag and drop файла на чистом JS и возникла проблема с ивентом DragEnterМне нужно отловить Event , то что я начал перемещать файлы в окно браузера...

123
map not a function при выборе option в dropDown

map not a function при выборе option в dropDown

TypeError: serviceNamemap is not a function сам компонент рендерится, но при выборе опшина, ломается

128
Что делают эти строки?

Что делают эти строки?

Помоготе разобраться что делают эти 7 строк что я закоментировалНе могу розобраться в длинных jQuery цепочках( Код слайдера:

167