マニュアルから理解したように、MKMapViewからのリアルサブクリップのみ。 GoogleMapsでRealmクラスタリングを使用することは可能ですか、他のSDKを探す必要がありますか?実際のクラスタリングGMSMapView ios
1
A
答えて
0
今のところABFRealmMapViewはMKMapView
で動作するように設計されていますが、Google Maps SDKと連携するように拡張することもできます。
実際にクラスタリングを実行する内部コンポーネントは、ABFLocationFetchedResultsControllerです。これにより、マップ検索を記述するABFLocationFetchRequest
を作成し、クラスタリングを有効にした状態でこれらのオブジェクトをフェッチします。 ABFRealmMapViewクラスが実際にABFLocationFetchedResultsController
をどのように使用しているかをコピーして、これをGoogleマップビューのサブクラスに移植することができます。
- (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];
}
}
:
インポートコードは(autorefresh
が有効な場合)に移動されるマップに応答して自動的に呼び出されrefreshMapView
方法、です
関連する問題
- 1. GMSMapViewは、iOS
- 2. カスタムマーカーのセンタリングGMSMapView
- 3. Node.jsクラスタリング - フォーク、実際に使用されているメモリ量は?
- 4. GMSMapViewトラッキングモード見出し
- 5. GMSMapViewのメモリリーク
- 6. GMSMapViewのアニメーション
- 7. GMSMapViewのAutoLayout
- 8. iOS 10 GMSMapViewが白地の背景アイコンを表示
- 9. 分裂的クラスタリングの実装
- 10. ライブバイトとiOSのアクティビティモニターの実際のメモリ
- 11. iOS 9の実際のサイズは?
- 12. GMSMapView(Googleマップ)GMSGeometryContainsLocationメソッドがiOSでクラッシュしていますか?
- 13. GoogleマップiOS SDK - GMSMapViewでUIView/UIButtonを追加
- 14. GMSMapViewを破棄するとGoogle Maps iOS SDKがクラッシュする
- 15. GMSMapViewを使用したEXC_BAD_ACCESS
- 16. 代理人GMSMapView二度目
- 17. バージョン1.6で廃止されたGMSMapViewメソッド
- 18. GMSMapView:メモリを管理する方法は?
- 19. 実際の電話でのiosプログラムのテスト
- 20. Swift/IOSでの実際の表示サイズの取得
- 21. 実際のデバイス上のiOSメッセージステッカーアプリケーションをテストする
- 22. サブビューの実際の起源を見つけるiOS Sdk
- 23. iOS - 文字の実際の高さを取得する
- 24. 実際のiOSデバイスでの位置をシミュレートする
- 25. GMSMapViewからすべてのGMSMarkerを削除しますか?
- 26. iOSアプリケーションで「Githubでログイン」を実装する際の問題
- 27. 実際のデバイスにiOSバンドルをロードしています
- 28. 実際のiOSデバイスでシミュレートされた位置
- 29. Firebaseが実際のデバイスで動作しない(iOS)
- 30. 実際のデベロッパでiPhoneアプリケーションを実行