2

SDK版本:1.1.0.2080

在 iOS 6 上

地图中大约有 10~50 个标记,并通过用户操作用一些相同或不同的标记刷新。

每次刷新标记时,地图将 fitBounds 动画和[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

清除屏幕上不可见的所有标记,然后你会没事的。

于 2013-04-02T04:20:58.130 回答
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 回答