Ho integrato Google Maps nella mia applicazione e anche utilizzando l'API di Google Places. Dopo aver ottenuto tutti i risultati dall'API di Google Places (circa 60), li visualizzo con l'aiuto di un indicatore personalizzato. L'indicatore personalizzato che sto facendo si compone di "Luogo immagine" e "nome di luogo" a causa della quale devo disegnare un primo momento in un UIView e poi lo rendono come un UIImage con l'aiuto della seguente funzioneLe prestazioni del marcatore personalizzato iOS, arresto anomalo del risultato "((null)) erano false: raggiunto il numero massimo di atlanti di trama, non è possibile allocare altro."
- (UIImage *)imageFromView:(UIView *) view
{
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
UIGraphicsBeginImageContextWithOptions(view.frame.size, NO, [[UIScreen mainScreen] scale]);
} else {
UIGraphicsBeginImageContext(view.frame.size);
}
[view.layer renderInContext: UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
All'inizio tutti i marcatori sono disegnati e disegnati facilmente.
Ora ho un dispositivo di scorrimento che va da 100 a 5 km, che funge da ottimizzatore del raggio di ricerca. Quando il cursore verrà spostato (supponiamo in un valore di 2 km), tutti i marker verranno rimossi e solo i marker la cui distanza dalla posizione dell'utente è inferiore al valore del cursore verranno nuovamente disegnati. Mentre sto testando la funzionalità di scorrimento, l'applicazione si blocca dicendo
((null)) era falso: raggiunto il numero massimo di atlanti di trama, non è possibile allocare altro.
Sto caricando schermate per una chiara comprensione della situazione. Per favore aiuto.
anche parlare, nelle schermate si vedrà indicatori verdi così come marcatori azzurri. I marker blu sono quelli che sono più vicini alla posizione dell'utente, mentre quelli verdi sono lontani da una distanza particolare. Come la posizione dell'utente cambierà ci sono 2 casi:
- Se si sta avvicinando ad un pennarello verde, poi si trasformerà in un indicatore blu
- Se sta lontano da un indicatore blu, poi si gira a un pennarello verde.
@LoVo Laggiù utilizzando una singola immagine è un'opzione disponibile come tutti hanno lo stesso marcatore, ma nel mio caso il mio marcatore ha contenuti diversi, nome di luogo e immagine Posto. –
Provare a utilizzare il bias della vista per il rendering dei marcatori. Ecco una libreria GitHub che lo fa (+ Clustering per prestazioni migliori) per iOS: https://github.com/romaonthego/REMarkerClusterer. Se funziona per il tuo caso d'uso, altrimenti puoi semplicemente adottare la logica di implementazione e il codice te stesso. – KayAnn
Segnalazione bug relativa all'API di Google Maps: https://code.google.com/p/gmaps-api-issues/issues/detail?id=7457 – Pang