Я использую библиотеку Geofire для загрузки данных из Firebase 3 в определенной области, но когда я добавляю новый маркер в базу данных и проверяю свою карту, я обнаружил, что несколько маркеров было добавлено в одинаковых координатах широты, мой вопроскак предотвратить повторение маркера в тех же координатах.Вот метод Geofire:
geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() {
@Override
public void onKeyEntered(String key, GeoLocation location) {
try{
MyItem myItem = new MyItem(location.latitude, location.longitude);
if (!items.contains(myItem)) {
items.add(myItem);
}
Log.d("onKey","called");
}catch (ClassCastException e){
Log.d("classCastException","");
}
}
@Override
public void onKeyExited(String key) {
}
@Override
public void onKeyMoved(String key, GeoLocation location) {
}
@Override
public void onGeoQueryReady() {
// countingMarkers = 0;
parseJsonToList();
}
@Override
public void onGeoQueryError(DatabaseError error) {
}
});
Метод ParseJsonToList:
private void parseJsonToList() {
itemss = clusterManagerAlgorithm.getItems();
try {
items.removeAll(itemss);
}catch (IndexOutOfBoundsException e){
Log.d("itemsDoesn't exist"," : ");
}
mClusterManager.clearItems();
mClusterManager.cluster();
mClusterManager.addItems(items);
Log.d("items"," : " + items);
}