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
- 其次,我不认为,把所有的标记都保存在内存中是个好主意。它们比板条重李>
- 第三,如果您想填充它们,您可以使用
环但是,当用户现在不在地图的当前部分时,我会使用
让google的API清除内存mMap.addMarker
标记的示例:。您需要在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))));`