2017-09-22 2 views
2

Ich versuche, viel von Marker auf ein Faltblatt KartePreformance des Blättchens mit angular2

Mit dieser Methode zu laden:

L.marker([item.latitude, item.longitude]).addTo(this.map); 

I Schleife für mindestens 100 Marker und die wirklich laggy wurde Karte nach Das.

Gibt es eine Möglichkeit, eine Karte zu optimieren, auf der ich viele Marker anzeigen möchte?

+0

Haben Sie versucht: https://stackoverflow.com/questions/17371039/how-to-add-markers-bulk-in-leaflet? Wenn das nicht hilft, ist es wahrscheinlich, dass du sie nur zusammenbrechen und zusammenfassen musst. –

+0

In diesem Beispiel verwendet er Clustering, in meinem Fall möchte ich alle Marker anzeigen. Wenn ich die Seite mit mehr als 100-300 Markern einlege, wird die Seite für 30 Sekunden eingefroren:/Gibt es eine Möglichkeit, dieses Einfrieren zu verhindern und die Marker zu laden? –

+0

Ich benutzte früher viele Broschüren, musste aber die Markierungen auf 50 beschränken. Am Ende vertauschte ich Google Maps mit einem Projekt, weil ich 150 Marker ohne Probleme anzeigen konnte. Das Flugblatt ist im Allgemeinen einfach so schwer, wie ich weiß. –

Antwort

0

Clustern der Marker ist meiner Meinung nach der beste Weg, um Leistungsprobleme zu behandeln. Da dies in Ihrem Fall keine Lösung ist, können Sie die Leistung verbessern, indem Sie zuerst alle Markierungen in einer Ebene platzieren und diese einzelne Ebene zu Ihrer Karte hinzufügen, anstatt alle Markierungen einzeln zur Karte hinzuzufügen.

Sie die Leistung hier vergleichen:

Beispiel gruppiert Hinzufügen zur Karte: einzeln http://jsfiddle.net/HarolddP/g12vj3mt/2/

Beispiel das Hinzufügen zur Karte: http://jsfiddle.net/HarolddP/euz7f6o2/

Empfohlene Verbesserung:

var map = L.map('map').setView([51.5, -0.09], 3);  
    var markers = []; 
    for (var i=0; i<500; i++){ 
     lat = ..; lng = ..; 
     marker = new L.marker([lat, lng]); 
     markers.push(marker); 
    } 
    markerGroup = L.layerGroup(markers); 
    markerGroup.addTo(map); 

Eine andere vorgeschlagene Lösung Fügen Sie der Karte nur die Markierungen hinzu, die sich in der Begrenzung Ihrer Ansicht befinden.

Wie Sie sich vorstellen können, hängt die Leistung auch davon ab, welche Art von Markern Sie verwenden. Sind sie groß? Wie Sie in den Beispielen sehen können, sind die 500 Standard-Merkblätter immer noch recht gut (an meiner Maschine).

Verwandte Themen