如何在android中使用geofire查询来统计用户半径内的标记?
How to count markers within the user radius using geofire query in android?
这是我的代码,我将标记添加到半径内的位置
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 );
}
}
}
这是输出:
我要统计半径内的标记
计算地理查询中键的最简单方法是保留一个计数器变量并在每次调用 is called. Then when
时增加它以指示已加载所有键,你知道有多少。
在代码中:
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"); //
}
}
这是我的代码,我将标记添加到半径内的位置
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 );
}
}
}
这是输出:
我要统计半径内的标记
计算地理查询中键的最简单方法是保留一个计数器变量并在每次调用 is called. Then when
时增加它以指示已加载所有键,你知道有多少。
在代码中:
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"); //
}
}