leaflet js: zeichne POIs als Leinwand
Ich zeichnen möchte, viele geo-Punkte mit Packungsbeilage. Deshalb will ich mit HTML5 canvas, um die performance zu verbessern.
Meine datasoure ist geoJSON. Als ich sah, wie in der Dokumentation des Flugblattes, es ist nicht möglich, zu zeichnen den geo-Positionen als Leinwand noch.
var anotherGeojsonLayer = new L.GeoJSON(coorsField, {
pointToLayer: function (latlng){
return new L.Marker(latlng, {
icon: new BaseballIcon()
});
}
});
Ich denke, ich sollte ein Haken hier:
pointToLayer: function (latlng) { }
Weiß jemand, wie man mein latlng-Objekte als Leinwand?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin Merkblatt Autor. Sie können dies tun, indem Sie mit L. CircleMarker statt der regulären Marker, und auch mit einem experimentellen L_PREFER_CANVAS Schalter zum Rendern von Vektoren als Canvas statt SVG), wie diese: https://github.com/CloudMade/Leaflet/blob/master/debug/vector/vector-canvas.html
Erweiterung auf die ursprüngliche Antwort falls jemand diese braucht für die Broschüre 1.0. Sollten Sie dennoch mit
L.circleMarker()
(Faltblatt circleMarker Dokumentation) stattL.marker()
, aber die Art und Weise zu benutzen, die Leinwand hat sich geändert.In der Packungsbeilage 1.0, die experimentelle
L_PREFER_CANVAS
switch wurde aktualisiert, um eine offizielle map-optionpreferCanvas
(Faltblatt preferCanvas Dokumentation).Alternativ können Sie explizit den canvas-renderer; ich denke, das macht das gleiche wie die
preferCavas
option. Hier ist die Merkblatt Unterlagen für die Leinwand.Diese Optionen (
preferCanvas: true
oderrenderer: L.canvas()
) mitL.circleMarker()
war deutlich schneller als eine normale Ebene mitL.marker()
.