Даже если у вас нет доступа к preferCanvas
опции или renderer
опции L.Map
, вы все равно можете использовать renderer
опция отдельные векторные слои .
При использовании этого в без django, ванильный JavaScript будет выглядеть так:
var map = new L.Map('leaflet', { /* map options */ });
var myCanvasRenderer = L.canvas();
var circle = L.circleMarker([0, 0], {
radius: 30,
renderer: myCanvasRenderer
}).addTo(map);
var line = L.polyline([[60, 10],[20, 200]], {
renderer: myCanvasRenderer
}).addTo(map);
Убедитесь, что вы 'создайте L.Canvas
рендерер один раз и повторно используйте его во всех ваших векторных слоях.
Вы можете подтвердить это, используя инструменты разработчика вашего веб-браузера и заметив, что есть *Элемент 1023 * внутри контейнера карты Leaflet, но элемент <svg>
не найден:
![](https://i.stack.imgur.com/8H8l9.png)
Вы можете увидеть этот пример здесь .