Google Maps没有从数据库中带走我的标记

时间:2018-08-04 16:58:34

标签: android google-maps firebase firebase-realtime-database

我正在尝试从数据库中获取所有标记,我以这种方式存储了标记

enter image description here

现在,我创建两个标记数组列表,一个添加所有这些标记,然后将其传递给另一个,以删除它们(我正尝试实时刷新标记在地图上显示的标记)。

但是我已经尝试过以此来显示标记,并且看来它只是显示了我的第一个标记,而没有遍历所有孩子。这是我尝试过的:

@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>();

enter image description here

也没有提示,我运行调试器,似乎没有进入我的foreach来获取所有纬度和经度。

1 个答案:

答案 0 :(得分:0)

(代表问题作者发布)

错误已解决!我在数据库上放置了相同的标记,它们被堆积了。