Настройка изображения маркера внутри геоквери - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь разместить нарисованное изображение в качестве маркера на своей карте. Я использую геоквери для получения данных из определенного местоположения, данные извлекаются правильно, но проблема в том, что только один маркер имеет маркер изображения, оставшийся из них имееткрасный маркер по умолчанию. Я попробовал тост в условиях if, чтобы проверить, работают они или нет, но каким-то образом

marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.firstmarker));

не работает должным образом в условии if, он устанавливает только одно изображениеи отдых не меняется.Есть ли что-то, что я делаю не так?

DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Location");
    GeoFire geoFire = new GeoFire(ref);
    GeoQuery geoQuery = geoFire.queryAtLocation(new GeoLocation(latLng1.latitude, latLng1.longitude), 2);
    geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() {
        @Override
        public void onKeyEntered(final String key, GeoLocation location) {

            UIDLocation.put(key,location);
            marker = mMap.addMarker(new MarkerOptions().position(new LatLng(location.latitude, location.longitude)));
            String tagkey = key;
            marker.setTag(tagkey);
            DatabaseReference ref  = FirebaseDatabase.getInstance().getReference().child("Users").child(key);
            ref.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    if (dataSnapshot.exists()){
                        String cat = dataSnapshot.child("category").getValue().toString();
                        if (cat.equals("first")){
                            marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.firstmarker));
                            markers.put(key, marker);
                        }
                        else if (cat.equals("second")){
                            marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.secondmarker));
                            markers.put(key, marker);
                        }
                        else if (cat.equals("third")){
                            marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.thirdmarker));
                            markers.put(key, marker);
                        }
                        else{
                            marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.forthmarker));
                            markers.put(key, marker);
                        }
                    }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });



        }

        @Override
        public void onKeyExited(String key) {

        }

        @Override
        public void onKeyMoved(String key, GeoLocation location) {

        }

        @Override
        public void onGeoQueryReady() {

        }

        @Override
        public void onGeoQueryError(DatabaseError error) {

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