Aiexa Alexander
Aiexa Alexander

Reputation: 17

Google maps Markers Titles Showing is full list

Im working with google maps project now and im fetching my data from firebase ,im able to plot multiple markers with the help of all the kind developers in this site, one thing is when plotting those markers my markers title are the same , the "same" means that all my markers have the same Title please see my imageenter image description here

enter image description here

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

    private GoogleMap mMap;
    private GoogleMap googleMap;
    private MarkerOptions options = new MarkerOptions();
    private ArrayList<LatLng> latlngs = new ArrayList<>();
    private ArrayList<String> Names = new ArrayList<>();
    String Lat ,Lon,Names1;
    double latitude , longitude;







    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);





        FirebaseDatabase database = FirebaseDatabase.getInstance();
        DatabaseReference myRef = database.getReference("Positions");
        myRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                for (DataSnapshot chidSnap : dataSnapshot.getChildren()) {

                     // System.out.println(chidSnap.getKey()); //displays the key for the node
                    // System.out.println(chidSnap.child("Latitude").getValue());
                    // System.out.println( chidSnap.child("Longitude").getValue());   //gives the value for given keyname


                    //some latitude and logitude value

                    //  System.out.println(latlngs);   //gives the value for given keyname

                    Lat = String.valueOf(chidSnap.child("Latitude").getValue());
                    Lon = String.valueOf(chidSnap.child("Longitude").getValue());
                    Names1 = String.valueOf(chidSnap.getKey());

                    latitude= Double.parseDouble(Lat);
                    longitude= Double.parseDouble(Lon);
                    latlngs.add(new LatLng(latitude, longitude));
                    Names.add(Names1);
                }


                if(mMap != null) {




                    for (LatLng point : latlngs) {
                        options.position(point);
                        options.title(String.valueOf(Names));
                        options.snippet("someDesc");
                        mMap.addMarker(options);
                    }
                }



            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
            }
        });


       // System.out.println(Names);


    }









    /**
     * Manipulates the map once available.
     * This callback is triggered when the map is ready to be used.
     * This is where we can add markers or lines, add listeners or move the camera. In this case,
     * we just add a marker near Sydney, Australia.
     * If Google Play services is not installed on the device, the user will be prompted to install
     * it inside the SupportMapFragment. This method will only be triggered once the user has
     * installed Google Play services and returned to the app.
     */
    @Override
    public void onMapReady(GoogleMap googleMap) {



        mMap = googleMap;




        for (LatLng point : latlngs) {
            options.position(point);
            options.title(String.valueOf(Names));
            options.snippet("someDesc");
            googleMap.addMarker(options);
        }


    }
}

My MapsActivity above. What im expecting is one marker should be named to Lex B05 , and the other user should be amanda thank in advance for your help!..

Upvotes: 0

Views: 76

Answers (1)

Nehal Godhasara
Nehal Godhasara

Reputation: 795

That because you are passing same arrayList Names to all marker, Try below code while adding marker

for (int i=0;i< latlngs.size();i++) {
            LatLng point=latlngs.get(i);
            options.position(point);
            options.title(Names.get(i));
            options.snippet("someDesc");
            mMap.addMarker(options);
        }

Hope this will help!!

Upvotes: 1

Related Questions