2013-04-02 3 views
2

SDK version: 1.1.0.2080Google Maps SDK pour IOS, carte bloquée, et a "coords maximales possibles dépassé"

Sur iOS 6

Il y a environ 10 ~ 50 marqueurs dans la carte, et rafraîchi avec un marqueur identique ou différent par opération de l'utilisateur.

Chaque fois que les marqueurs sont actualisés, la carte est ajustéeBounds animés et [map clear].

En cas de rafraîchissement trop de fois (environ 1000+ marqueurs rafraichis au total), j'ai obtenu Maximum possible coords (10000) exceeded: 32768 dans la console et tout est bloqué.

En GMSMapView.h, le doc de clear est:

/**

* efface toutes les balises qui a été ajouté à la carte, y compris les marqueurs,

* polylignes et superpositions au sol. Ceci n'effacera pas l'emplacement visible point

* ou de réinitialiser le mapType actuel.

*/

- (void) claire;

C'est ma fonction de rafraîchissement:

- (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]; 
    } 
} 

je serais apprecaiate des commentaires/expérience sur la façon de résoudre.

+0

comment sauvegardez-vous les coordonnées? Peut-être que vous pouvez montrer quelques codes. – Raptor

+0

J'ai ajouté ma fonction d'actualisation – WangYulong

+0

Toujours en train d'essayer: combien d'éléments dans 'NSMutableArray'? et dans le 'NSDictionary'? – Raptor

Répondre

1

Effacer tous les marqueurs qui ne sont pas visibles à l'écran, alors tout ira bien.

+0

Je [map clear] à chaque fois, et je suis sûr que le map.markers.count == 0 après le clear – WangYulong

+0

mais chaque fois que vous avez créé trop de marqueurs. Je ne crois pas qu'un écran puisse voir autant de marqueurs. Ne placez que ceux visibles. Ceux qui sont hors des zones visibles, vous pouvez les rendre quand ils deviennent visibles – Raptor

+0

Peut-être que ma description n'est pas très claire. Il y a 10 ~ 50 marqueurs en même temps, et les anciens marqueurs sont effacés avec [map clear] 'par rafraîchissement. – WangYulong

Questions connexes