Разделяй и оптимизируй

Владимир Агафонкин давно рассказывает про библиотеку geojson-vt: она нарезает большие файлы GeoJSON на векторные тайлы прямо в браузере (или на сервере, или в нативном коде для смартфонов). Это часть большого стека отрисовки всего в виде векторных тайлов (Mapbox GL JS), про который автор делал много одинаковых докладов в первой половине года.

Что он сейчас сделал впервые — это написал статью про то, какие алгоритмы и решения делают geojson-vt таким быстрым. Вдумчивого чтения там на полчаса, хотя суть укладывается в список в середине: искать подходящие алгоритмы, не делать ненужного, лишнее удалять, и самое главное — профилировать каждую операцию. По сути, то же, что было в Leaflet, но результат куда эффектнее: сотни мегабайт данных обрабатываются пару секунд и отображаются почти мгновенно. Правда, видеозаписи этого чуда найти проще работающих примеров.

Поделиться
Отправить
2015   javascript
2 комментария
Михаил

Я правильно понимаю, что векторный рендеринг — это потенциальная киллер-фича, которая никогда не появится в других картах?

Илья Зверев

Скорее, со временем появится во всех картах :) Над векторным рендерингом работают многие.

Михаил

Но для этого же потребуется выложить исходные данные, что никто кроме OSM не делает.

Илья Зверев

Почему — это уже есть в Google Maps (заметно при масштабировании), и на серверной стороне карт Яндекса (hidpi по запросу). Также векторные данные Яндекс передаёт приложению «Яндекс.Навигатор», и они же теоретически могут быть использованы при отрисовке в браузере.