Современные тайлы

Этим летом отключили две незначительных штуки, связанные с тайлами OpenStreetMap. Про них почти никто не знал, но это знание придавало ощущение «внутреннего круга», техничности. Сродни умению написать запрос в API без подсказки.

Во-первых, веб-карты больше не должны добавлять префиксы к названию сервера тайлов. Никаких b.tile.osm.org и никаких {s} в шаблонах для Leaflet и JOSM. Соответствующие изменения уже приняты в Leaflet, OpenLayers, FlutterMap, OsmDroid, Overpass Turbo, MapsForge и других. Уберите и вы из своих карт, добавив ссылку на пул-реквест или коммит в тикет по ссылке выше.

Эти префиксы были придуманы, чтобы обойти ограничение браузеров на параллельное скачивание. Они грузили картинки в один-два потока на сервер, а карта на экране обычно состоит из 20-40 тайлов. Чтобы не ждать, пока они загрузятся по порядку, их качали как бы с трёх адресов параллельно. Не важно, что они указывают на один и тот же физический сервер.

С внедрением протоколов HTTP/2 и HTTP/3 подобные ухищрения устарели. Теперь ограничений нет, можно качать хоть всё одновременно. А без префикса становится проще кэшировать тайлы: в кэш попадает нормальный адрес, для всех один. Сейчас запросов по всем трём версиям протокола примерно поровну. HTTP/1, скорее всего, пользуются только приложения, а не браузеры. В том числе те, что грузят тайлы бочками.

Во-вторых, больше не работают суффиксы /status и /dirty для отдельных тайлов. Знающие люди добавляли их к адресам единичных тайлов, чтобы узнать, когда они были отрисованы, и при необходимости перерисовать. Они устарели и отключены: когда тайлы отрисовывают семь серверов, команды отправляются на любой из них — часто не тот, который прислал картинку.

Интересно, как нестабилен интернет даже по отношению к вещам, которые, казалось бы, не должны меняться. Тайлы — всего лишь картинки с фиксированными адресами. Формат один и тот же с 2006 года. Но если вы сделали веб-карту пять лет назад, то за это время она существенно устарела. Два года назад нужно было заменить http на https, а теперь — убрать префиксы. Иначе карта будет медленнее, чем возможно, и рано или поздно сломается совсем. В OpenStreetMap, чтобы оставаться на месте, бежать не обязательно, но важно хотя бы ползти в правильном направлении.

Поделиться
Отправить
2022   osm.org

Мнения, высказанные на этом сайте, отражают точку зрения лично автора сайта и ничью больше: ни его бывших или настоящих работодателей, ни семьи и знакомых.

2 комментария
Felis Pimeja 2022

/status и /dirty немного жалко. Хотя и не помню уже когда в последний раз возникала необходимость в их использовании. Про флёр «тайного знания» верно подмечено :-D

az09 2022

постоянно возникала такая необходимость. очень долго перерендериваются береговые тайлы например.

Популярное