我有一个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数据库:
有人可以帮我解决这个问题吗?