2

SDK バージョン: 1.1.0.2080

IOS 6 の場合

マップには約 10 ~ 50 個のマーカーがあり、ユーザーの操作によって同じまたは異なるマーカーで更新されます。

マーカーが更新されるたびに、マップはアニメーション化された[map clear]境界に適合します。

何度も更新すると (合計で約 1000 以上のマーカーが更新されます)、 Maximum possible coords (10000) exceeded: 32768コンソールに入り、すべてがブロックされました。

GMSMapView.h のドキュメントclearは次のとおりです。

/**

* マーカーを含む、マップに追加されたすべてのマークアップをクリアします。

* ポリラインとグラウンド オーバーレイ。これは、目に見える場所のドットをクリアしません

* または現在の mapType をリセットします。

*/

- (無効) クリア;

これは私のリフレッシュ機能です:

- (void)reloadMarkers:(NSMutableArray *)items fitbounds:(BOOL)fitbounds withVisibleRect:(CGRect)visibleRect
{
    [_map clear];
    if ([items count] == 0) {
        return;
    }
    if (fitbounds) {
        [self fitBounds:items withVisibleRect:visibleRect];
    }

    for (NSDictionary *item in items) {
        GMSMarkerOptions *options = [[GMSMarkerOptions alloc] init];
        options.position = CLLocationCoordinate2DMake([[item valueForKey:@"lat"] doubleValue], [[item valueForKey:@"lng"] doubleValue]);
        options.title = [item valueForKey:@"name"];
        options.userData = item;
        UIImage *img = [UIImage imageNamed:[setting valueForKey:[item valueForKey:@"icon"]]];
        options.icon = img;

        [_map addMarkerWithOptions:options];
    }
}

解決方法に関するフィードバックや経験をいただければ幸いです。

4

2 に答える 2

1

SDK のバグのようです。ここで問題を提起できます。

https://code.google.com/p/gmaps-api-issues/issues/entry?template=Maps%20SDK%20for%20iOS%20-%20Bug

当面は、古いマーカーを削除して新しいマーカーを追加する代わりに、以前に追加したマーカーを再利用する (つまり、位置、タイトルなどを更新する) ことで問題を回避できます。

于 2013-04-02T07:14:26.840 に答える