Кратко

  • Рекомендация W3C SVG 1.0 от 4 сентября 2001 года определила язык XML для двумерной графики: векторных контуров и фигур, изображений и текста.
  • Координаты и правила окна просмотра позволили переносить одну геометрическую конструкцию в рамки разных размеров. Увеличить карту означало начертить улицы по контурам, а не раздуть прежние пиксели.

Попросите маленькую картинку показать улицу покрупнее — и она предъявит квадраты размером с дома. Других сведений у нее нет: только прежние цветные точки. Рекомендация SVG 1.0 дала автору более толковый ответ. Дорогу можно задать контуром, квартал — фигурой, название — текстом, а их расположение — координатами в XML. Масштаб меняется, чертеж улицы остается.

Введение к спецификации перечисляет прямые и кривые линии, изображения и текст. Объекты можно объединять, оформлять, двигать и накладывать друг на друга. На карте река идет своим руслом, станция носит свою подпись, район состоит из связанных фигур. Неверный поворот дороги исправляют в чертеже; перекрашивать вручную каждый квадрат города больше не требуется.

Как чертеж попадает в рамку, объясняет глава о координатах. SVG различает пространство рисунка и конечное окно просмотра. У рамки свои координаты, у автора, расположившего фигуры, — свои. viewBox выбирает участок авторского пространства и помещает его в рамку; preserveAspectRatio задает способ подгонки. Одни и те же улицы могут уместиться в уголке страницы или занять весь разворот, не меняя маршрутов в исходном чертеже.

Фигуры можно двигать, увеличивать, поворачивать и наклонять. Целый квартал способен переехать как группа; вложенный элемент SVG получает собственную рамку. Картограф сначала расставляет улицы и районы, а потом выбирает участок для читателя. Экран в итоге показывает пиксели, зато документ знает, как нарисовать их заново в другой рамке.

В SVG 1.0 были также текст, встроенные картинки, маски, фильтры, анимация и сценарии. Но для нашей карты важнее скромная суперсила: хранить геометрию отдельно от размера показа. Читатель меняет окно, а улицы не забывают, куда им идти.

W3C представил SVG 1.0 как XML-язык двумерной векторной графики в сообщении от 5 сентября 2001 года. Рекомендация датирована днем раньше. Веб получил общий способ передавать чертеж, а не только его портрет в одном размере. Читатель приближал карту и снова видел дороги. Пиксельная каша оставалась завтраку.