Как я понял из документации Реальное подклассирование только из MKMapView. Можно ли использовать кластер Realm с GoogleMaps, или я должен искать какой-то другой SDK?Реальная кластеризация GMSMapView ios
1
A
ответ
0
Прямо сейчас ABFRealmMapView предназначен для работы с MKMapView
, но его можно расширить, чтобы работать с SDK Google Maps.
Внутренний компонент, который фактически выполняет кластеризацию: ABFLocationFetchedResultsController. Это позволяет создать ABFLocationFetchRequest
, описывающий поиск по карте, и затем он будет извлекать эти объекты с включенной кластеризацией или нет. Вы можете скопировать то, как класс ABFRealmMapView фактически использует ABFLocationFetchedResultsController
и переносит это на подкласс вида карты Google.
код импорта в refreshMapView
метод, который автоматически вызывается (если autorefresh
включена) в ответ на карту, перемещаемых:
- (void)refreshMapView
{
@synchronized(self) {
[self.mapQueue cancelAllOperations];
MKCoordinateRegion currentRegion = self.region;
ABFLocationFetchRequest *fetchRequest =
[ABFLocationFetchRequest locationFetchRequestWithEntityName:self.entityName
inRealm:self.realm
latitudeKeyPath:self.latitudeKeyPath
longitudeKeyPath:self.longitudeKeyPath
forRegion:currentRegion];
if (self.basePredicate) {
NSCompoundPredicate *compPred =
[NSCompoundPredicate andPredicateWithSubpredicates:@[fetchRequest.predicate,self.basePredicate]];
fetchRequest.predicate = compPred;
}
[self.fetchResultsController updateLocationFetchRequest:fetchRequest
titleKeyPath:self.titleKeyPath
subtitleKeyPath:self.subtitleKeyPath];
typeof(self) __weak weakSelf = self;
NSBlockOperation *refreshOperation = [[NSBlockOperation alloc] init];
NSBlockOperation __weak *weakOp = refreshOperation;
MKMapRect visibleMapRect = self.visibleMapRect;
ABFZoomLevel currentZoomLevel = ABFZoomLevelForVisibleMapRect(visibleMapRect);
if (self.clusterAnnotations &&
currentZoomLevel <= self.maxZoomLevelForClustering) {
MKZoomScale zoomScale = MKZoomScaleForMapView(self);
[refreshOperation addExecutionBlock:^{
if (![weakOp isCancelled]) {
[weakSelf.fetchResultsController performClusteringFetchForVisibleMapRect:visibleMapRect
zoomScale:zoomScale];
[weakSelf addAnnotationsToMapView:weakSelf.fetchResultsController.annotations];
[weakSelf registerChangeNotification:weakSelf.autoRefresh];
}
}];
}
else {
[refreshOperation addExecutionBlock:^{
if (![weakOp isCancelled]) {
[weakSelf.fetchResultsController performFetch];
[weakSelf addAnnotationsToMapView:weakSelf.fetchResultsController.annotations];
[weakSelf registerChangeNotification:weakSelf.autoRefresh];
}
}];
}
[self.mapQueue addOperation:refreshOperation];
}
}
Смежные вопросы
- 1. Обнаружить масштабирование на GMSMapView (iOS)
- 2. GoogleMaps IOS SDK GMSMapView Класс высвобождены
- 3. iOS: Как узнать уровень масштабирования GMSMapView
- 4. GMSMarker скрыть/показать в GMSMapView в iOS
- 5. Добавление маркера в подпрограмму GMSMapView iOS
- 6. ios симулятор аварии, реальная вещь не
- 7. Виртуальная и реальная память в приложении IOS
- 8. Режим отслеживания GMSMapView заголовок
- 9. Переопределение наложений GMSMapView
- 10. Анимация GMSMapView
- 11. GMSMapView скрывается панель навигации
- 12. Удалить все GMSMarker из GMSMapView?
- 13. GMSMapView: как управлять памятью?
- 14. Скрыть станции метро от GMSMapView
- 15. Кластеризация в SDK Google Maps для iOS
- 16. Кластеризация маркеров Google Maps в iOS
- 17. Новый GMSMapView не работает, но старый GMSMapView правильно загружается
- 18. Google Maps iOS SDK - Добавить UIView/UIButton через GMSMapView
- 19. GMSMapView SDK Google Maps в iOS ничего не показывает
- 20. Пользовательское местоположение пользователя в Google maps для iOS (GMSMapview)
- 21. GMSMapView всегда отображает одно и то же местоположение iOS
- 22. Изменение цвета фона карты по умолчанию GMSMapView в iOS
- 23. Google Maps iOS SDK случайный сбой при уничтожении GMSMapView
- 24. Нарисуйте маршрут на GMSMapView (SDK для Google Maps iOS)
- 25. Добавить текст в GMSMapView - написать в Google Map для iOS
- 26. Рисование маршрута между бесконечными местами на GMSMapView в iOS
- 27. GMSMapView (google map) GMSGeometryContainsLocation метод сбой в iOS?
- 28. Google maps swift ios mapwithframe на ошибке GMSMapView
- 29. Невозможно переместить камеру на GMSMapView Карт Google для iOS
- 30. Изображение местоположения текущего местоположения GMSMapView с прозрачностью в iOS 8