DBからPOIをロードするためにレルムを使用します。次に、このポイントをmapsforgeによるクラスタ実現に追加します。 このコードはうまく機能:マップフォージはレルムからクラスタPOIを再描画しません
RealmResults<GasolineRealm> gasolineRealms = presenter.getRealm().where(GasolineRealm.class)
.findAll();
for(int i=0; i<gasolineRealms.size(); i++){
geoItems.add(new GasolineGeoItem(gasolineRealms.get(i).getId(),
gasolineRealms.get(i).getLocalizationRealms().get(0).getTitle(),
gasolineRealms.get(i).getCoordinateLatitude(),
gasolineRealms.get(i).getCoordinateLongitude()));
clusterer.addItem(geoItems.get(i));
}
それは、地図上のすべてのPOIを描くが、私はレルムクラスタのためのRxJavaを使用する場合は地図上のPOIを追加することはありません。
Realm.getDefaultInstance().where(GasolineRealm.class)
.findAllAsync()
.asObservable()
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<RealmResults<GasolineRealm>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(RealmResults<GasolineRealm> gasolineRealms) {
for(int i=0; i<gasolineRealms.size(); i++){
geoItems.add(new GasolineGeoItem(gasolineRealms.get(i).getId(),
gasolineRealms.get(i).getLocalizationRealms().get(0).getTitle(),
gasolineRealms.get(i).getCoordinateLatitude(),
gasolineRealms.get(i).getCoordinateLongitude()));
clusterer.addItem(geoItems.get(i));
}
}
});
rxのuiスレッドで何か問題があります。なぜなら、すべてのアイテムを受け取り、clustererに正常に保存するからです。 http://joxi.ru/8234OjxckNYyAO – Drake
でも地図上にアイテムを描画しません – Drake