Java 如何用LatLang的ArrayList填充标记的ArrayList

Java 如何用LatLang的ArrayList填充标记的ArrayList,java,android,google-maps,google-maps-markers,Java,Android,Google Maps,Google Maps Markers,我有两个数组 private LinkedList<LatLng> linkedLatLang = new LinkedList<>(); private ArrayList<Marker> mMarkers = new ArrayList<>(); 根据@Mike M给出的评论,您需要一个GoogleMap实例。使用GoogleMap,map的给定实例,您可以: GoogleMap map = ... // get a map. l

我有两个数组

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

根据@Mike M给出的评论,您需要一个
GoogleMap
实例。使用
GoogleMap
map
的给定实例,您可以:

GoogleMap map = ... // get a map.
linkedLatLang.forEach(e -> mMarkers.add(map.addMarker(new MarkerOptions().position(e))));`
  • 首先,您有
    LinkedList
    而不是
    ArrayList
  • 其次,我不认为,把所有的标记都保存在内存中是个好主意。它们比板条重
  • 第三,如果您想填充它们,您可以使用 环但是,当用户现在不在地图的当前部分时,我会使用
    mMap.addMarker
    让google的API清除内存

在该类的文档中有一个如何创建
标记的示例:。您需要在
GoogleMap
上调用
addMarker()
,传递
MarkerOptions
对象。然后,您将
添加()
列表中
。为什么不使用java 1.8流,比如->
列表标记=linkedLatLang.stream().map(下一步->createMarkerFromLatLng(下一步)).collect(收集器.toList())
这个想法是用latlangsHow设置相机的边界关于这个方法?这是行不通的,因为.position(e)不是LatLang的类型,相反,你像linkedList.size那样做,并在上面传递i,它应该是linkedList.get(i)
position(e)
返回
MarkerOptions
,这是
map.addMarker
需要的,最好给出更多的代码片段,例如,包括
GoogleMap
实例
GoogleMap map = ... // get a map.
linkedLatLang.forEach(e -> mMarkers.add(map.addMarker(new MarkerOptions().position(e))));`