Анимировать несколько маркеров - PullRequest
0 голосов
/ 07 апреля 2019

Я работаю над проектом Android, который отображает маркеры, представляющие местоположение пользователей на карте, и маркер, представляющий определенное место. В моем проекте я использую API Google Map, я пишу приведенный ниже код, но у меня возникает проблема каждый раз, когда Обновление местоположения пользователя в базе данных добавляет новый маркер вместо перемещения пользовательского маркера, я знаю это, потому что я создаю маркер каждый раз, когда меняются данные, но я не могу понять, как его решить, я много искал все Решения, которые я нашел, заключались в перемещении одного маркера в конечный пункт назначения.

 @Override
    public void onMapReady(GoogleMap googleMap) {
        map = googleMap;
// to display current user location 
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
                == PackageManager.PERMISSION_GRANTED) {
            map.setMyLocationEnabled(true);
        } else {
// Show rationale and request permission.
        }

// to show the place marker
     LatLng location = new LatLng(lat1, lon1);
    map.addMarker(new MarkerOptions().position(location).title(title).snippet(date).icon(BitmapDescriptorFactory.fromResource(R.drawable.lostflag)));
        map.moveCamera(CameraUpdateFactory.newLatLng(location));

        // when users location update in DB 

rootRef=FirebaseDatabase.getInstance().getReference("volunteer/"+Pid);
        rootRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                for (DataSnapshot propertySnapshot :dataSnapshot.getChildren()) {
                       if(propertySnapshot.getKey()!=userID){
                            Volunteer volunteer1 = propertySnapshot.getValue(Volunteer.class);
                           boolean statue = volunteer1.getState();

                        if (statue) {// if it volunteer

                           double latitude = volunteer1.getLatitude();
                           double longitude = volunteer1.getLongitude();
                           LatLng location1 = new LatLng(latitude, longitude);

map.addMarker(new MarkerOptions().position(location1).icon(BitmapDescriptorFactory.fromResource(R.drawable.volunteer)));

                        }
                        } 


                    }
                }



            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...