2017-02-03 4 views
1

Ich arbeite derzeit mit Leaflet 1.0.3 und hier ist mein Problem. Ich habe viele GPS-Positionen, die auf meiner Karte angezeigt werden.Leaflet Polyline Leistung Ausgabe

Ich habe eine for Schleife, wo ich einen Kreis Markierung auf jeder Position zu erstellen:

var position = new L.latLng(lat, lng); 
coordinates.push(position); 

L.circle([lat, lng], 50, { 
    color: 'red', 
    fillColor: '#f03', 
    fillOpacity: 0.5 
    }).addTo(map).bindPopup(date.replace('T',' ')); 

Mit tausend Position, kein Performance-Problem, es schnell ist. Aber wenn ich Linienzug in die gleiche Schleife zwischen zwei Kreis wie folgt aus:

var polyline = new L.Polyline(coordinates, { 
    color: 'red', 
    weight: 3, 
    opacity: 0.5, 
    smoothFactor: 5 
    }); 
polyline.addTo(map); 

Die Leistungsabnahme und es ist wirklich langsam. Das Hauptproblem besteht darin, dass es manchmal keine Position zwischen verschiedenen Zeitbereichen gibt, also muss ich eine Polylinie zeichnen, um etwas Visuelles zu haben, und keinen Spalt.

Gibt es eine Möglichkeit, dieses Problem zu lösen? Vielen Dank !

Antwort

1

Zeichnen der Polylinie sollte nicht in der Schleife, sondern nach der Schleife sein. So wie ich die Frage verstehe, zeichnest du die Polylinie immer wieder, während sie sich ausdehnt.

Wenn Sie es in der Schleife möchten, müssen Sie nur zwischen den 2 letzten Positionen (des Arrays) zeichnen.

+0

Vielen Dank für Ihre schnelle Antwort, ich weiß nicht, warum ich es vorher nicht getan habe ... Einen schönen Tag und vielen Dank noch einmal! – Baptiste