2016-07-06 9 views
-1

Ich habe einen Codeabschnitt, wo der Benutzer die Sichtbarkeit einer großen Menge von Polylinien umschalten kann. Um sie auszuschalten, ich setMap(null), was schnell passiert. Aber das Einschalten über setMap(map) dauert lange. Gibt es eine Möglichkeit, Google zu veranlassen, die Zeilen zu zeichnen, die hinzugefügt wurden, bevor die Schleife abgeschlossen ist?Wie kann ich erzwingen Google Maps zu Polylines Mid-Loop-Rendering?

Der Code zur Zeit ist:

for (var i = 0; i < polylines.length; i++) { 
polylines[i].setMap(map); 
} 

ich eine Zeile wie if (i % 100 == 99) hinzufügen möchten, die hinzugefügt eine Wiedergabe aller neuen Linien auslösen würde. Wie erzwinge ich die Google Maps-API dazu?

+0

Mit setMap (null) löschen Sie alle Polylinien, die Sie zuvor in Ihrer for-Schleife hinzugefügt haben. Ich würde vorschlagen, die Deckkraft der Polylinien eher zu ändern, um die Sichtbarkeit umzuschalten –

Antwort

0

Sie müssen Prozessorzeit für das Rendern bereitstellen. Brechen Sie die Schleife in mehrere Teile und verwenden Sie setTimeout, um den Prozessor für das Rendering zwischen den Teilen freizugeben.