'How to count markers within the user radius using geofire query in android?
Here is my code I add marker to the location within the radius
GeoQuery geoQuery = geoFire.queryAtLocation( new GeoLocation( latitude, longitude ), 1 );
HashMap<String, Marker> markers = new HashMap<>();
geoQuery.addGeoQueryEventListener( new GeoQueryEventListener() {
@Override
public void onKeyEntered(String key, GeoLocation location) {
countCrime++;
if (isAttachedToActivity()) {
//get string icon using filename
int resourceID = getResources().getIdentifier(
data.getIcon(), "drawable",
getActivity().getPackageName() );
//bitmapDescriptor for marker using filename
BitmapDescriptor crime_icon = BitmapDescriptorFactory.fromResource( resourceID );
LatLng latLng = new LatLng( latitude, longitude );
Marker marker = mGoogleMap.addMarker( new MarkerOptions().position( latLng )
.icon( crime_icon ) );
markers.put( key, marker );
marker.setTag( details );
}
}
}
Here is the Output:

I want to count the marker in the radius
Solution 1:[1]
The easiest way to count the keys inside the geoquery, is to keep a counter variable and increase that every time is called. Then when is called to indicate that all keys have been loaded, you know how many there are.
In code:
geoQuery.addGeoQueryEventListener( new GeoQueryEventListener() {
int keyCount = 0; // ?
@Override
public void onKeyEntered(String key, GeoLocation location) {
keyCount++; // ?
...
}
@Override
public void onKeyExited(String key) {
keyCount--; // ?
}
@Override
public void onGeoQueryReady() {
System.out.println("There are now "+keyCount+" keys in range"); // ?
}
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Frank van Puffelen |
