我正在尝试从数据库中获取所有标记,我以这种方式存储了标记
现在,我创建两个标记数组列表,一个添加所有这些标记,然后将其传递给另一个,以删除它们(我正尝试实时刷新标记在地图上显示的标记)。
但是我已经尝试过以此来显示标记,并且看来它只是显示了我的第一个标记,而没有遍历所有孩子。这是我尝试过的:
@Override
public void onMapReady(final GoogleMap googleMap) {
mMap = googleMap;
mDatabase.child("usuarios").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (Marker marker : realTimeMarkers) {
marker.remove();
}
for(DataSnapshot snapshot : dataSnapshot.getChildren()){
MapsPojo mp = snapshot.getValue(MapsPojo.class);
Double latitud = mp.getLatitud();
Double longitud = mp.getLongitud();
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(new LatLng(latitud,longitud));
markerOptions.snippet("ID: "+snapshot.getKey());
tmpRealTimeMarkers.add(mMap.addMarker(markerOptions));
}
realTimeMarkers.clear();
realTimeMarkers.addAll(tmpRealTimeMarkers);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
其中的realTimeMarkers和tmpRealTimeMarkers:
private ArrayList<Marker> tmpRealTimeMarkers = new ArrayList<Marker>();
private ArrayList<Marker> realTimeMarkers = new ArrayList<Marker>();
也没有提示,我运行调试器,似乎没有进入我的foreach
来获取所有纬度和经度。
答案 0 :(得分:0)
(代表问题作者发布)。
错误已解决!我在数据库上放置了相同的标记,它们被堆积了。