Как заполнить ArrayList маркеров с помощью ArrayList LatLang

У меня есть два массива

  private LinkedList<LatLng> linkedLatLang = new LinkedList<>();
    private ArrayList<Marker> mMarkers = new ArrayList<>();

Мой первый массив содержит все широты и долготы, теперь мне нужно заполнить массив Marker всеми этими LatLang, и я не могу понять, как это сделать.

это то, что мне нужно сделать

mMarkers.add(new MarkerOptions().position(here_i_need_to_get_all_latlangs));

В документации для этого класса есть пример создания Marker: developers.google.com/android/reference/com/google/android/g‌ ms /…. Вам нужно вызвать addMarker() на вашем GoogleMap, передав свой объект MarkerOptions. Затем вы переместите add() на свой List.

Mike M. 22.11.2018 21:39

Почему бы вам не использовать потоки java 1.8, например -> List<Marker> markers = linkedLatLang.stream().map(next -> createMarkerFromLatLng(next)).collect(Collectors.toList());

nmorenor 22.11.2018 23:43
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
166
2

Ответы 2

Судя по комментарию @Mike M., вам понадобится экземпляр GoogleMap. С данным экземпляром GoogleMap, map вы можете:

GoogleMap map = ... // get a map.
linkedLatLang.forEach(e -> mMarkers.add(map.addMarker(new MarkerOptions().position(e))));`

это не сработает, поскольку .position (e) не является типом LatLang, вместо этого вы делаете как connectedList.size и передаете ему i, вместо этого он должен быть связан со списком.get (i)

Todd 22.11.2018 21:57
position(e) возвращает MarkerOptions, который нужен map.addMarker, лучше дать больше фрагмента кода, например, включая экземпляр GoogleMap.
Rui 22.11.2018 22:03
  • Во-первых, у вас LinkedList, а не ArrayList.
  • Во-вторых, я не думаю, что держать в памяти все маркеры - хорошая идея. Они тяжелее, чем LatLng.
  • В-третьих, если вы хотите заполнить их, вы можете просто использовать для петля. Но вместо этого я бы использовал mMap.addMarker, чтобы позволить API Google очищать память, когда пользователь не находится в текущей части карты прямо сейчас.

идея состоит в том, чтобы установить границы камеры с латинскими языками

Todd 22.11.2018 21:49

Как насчет такого подхода? stackoverflow.com/questions/15540220/…

samaromku 23.11.2018 11:41

Другие вопросы по теме