如何在GeoFire中检索指定半径的用户?

时间:2017-02-09 21:32:17

标签: android firebase firebase-realtime-database geofire

我有一个Android应用程序,它显示用户在附近位置的标记,以指定的半径进行挖掘。例如:我将半径设置为1 km,我想检索此半径范围内的所有用户。现在,在地图上我有标记,但我也想显示用户。我怎么能这样做?我看不到任何特定的文档允许在GeoFire中获取半径的用户。使用Map,我可以计算标记量。

我还有一个数据库用户子,显示名称,缺口等。我应该使用这部分来显示这个半径内的用户昵称吗?

这是我的代码:

     ref_red = FirebaseDatabase.getInstance().getReference("geofire/red_marker");
     geoFireRed = new GeoFire(ref_red);
     geoQuery = geoFireRed.queryAtLocation(new GeoLocation(lat, lng), km);

        geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() {
            @Override
            public void onKeyEntered(String key, GeoLocation location) {

               geoItems.setText("Somebody is here. " + String.valueOf(markers.size()));

               Marker marker = mGoogleMap.addMarker(new MarkerOptions().position(new LatLng(location.latitude, location.longitude))
                        .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
                markers.put(key, marker);

                tvDetected.setText("Object detected." + String.valueOf(markers.size()));

            }

            @Override
            public void onKeyExited(String key) {

                geoItems.setText("Nobody is here. " + String.valueOf(markers.size()));

                Marker marker = markers.get(key);
                if (marker != null) {
                    marker.remove();
                    markers.remove(key);

                }         
            }

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

                Marker marker = markers.get(key);
                if (marker != null) {
                    marker.remove();
                    markers.remove(key);
                }
            }

            @Override
            public void onGeoQueryReady() {

            }

            @Override
            public void onGeoQueryError(DatabaseError error) {

            }
        });

以下是我的geofire数据库:

enter image description here

有人可以帮我解决这个问题吗?

0 个答案:

没有答案