Маркеры листовок: изображения PNG или base64?

Какая рекомендация заключается в отображении большого количества маркеров (около 100) на листовке «Карта»? Что лучше отображать маркеры, используя изображение PNG или изображение base64 для значка маркера?

В листовке Doc ничего не нашла:

https://leafletjs.com/examples/custom-icons/


person wawanopoulos    schedule 13.05.2019    source источник
comment
Base64 - это не формат изображения, это кодировка для формата изображения.   -  person tadman    schedule 13.05.2019
comment
Да, верно, но доступны оба решения, поэтому я хотел бы выбрать хорошее.   -  person wawanopoulos    schedule 13.05.2019
comment
Хорошее очень субъективно. Попробуйте оба варианта и посмотрите, что лучше всего подходит для вашей конкретной ситуации. Когда задействовано что-то вроде Webpack, это часто спорный вопрос.   -  person tadman    schedule 13.05.2019


Ответы (1)


Вам интересно, в чем разница между использованием внешнего файла изображения для значков Leaflet Marker и встроенного изображения в кодировке base64.

При использовании отдельного файла браузеры оптимизированы для кэширования данных.

Когда данные вашего изображения встроены, это может помешать такой оптимизации, и мы увидим снижение производительности браузера. См. анализ производительности листовки № 4968:

При загрузке большого количества маркеров (в моем случае 1000) производительность заметно хуже для встроенных изображений base64.

[...] по какой-то причине композиция слоя задерживается при использовании встроенных изображений, из-за чего вся загрузка занимает примерно секунду больше.

Для случайного использования это, вероятно, не имеет значения, но если вы используете много маркеров, это может быть актуально.

Обратите внимание, что как только вы все равно попытаетесь отобразить более нескольких сотен маркеров, вам следует подумать об использовании кластеризации или одиночных маркеров / значков на основе холста.

person ghybs    schedule 14.05.2019