GML, YMapsML и KML

Отраслевым стандартом, используемым для описания географических данных, является GML — Geographic Markup Language. GML разрабатывается и поддерживается консорциумом OGC (Open Geospatial Consortium) и является международным стандартом ISO. Первая версия языка была выпущена в 2000 году, а последняя, третья — в 2007.

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

Существует два основных способа адаптации GML к конкретным задачам: профилирование (profiling) и разработка т. н. «прикладных схем» (application schema). В первом случае из схемы GML выделяется необходимое подмножество элементов, причём делается это средствами самого GML. Во втором — создается новая схема, содержащая как собственные элементы, так и элементы GML. Первый способ позволяет создавать упрощённые варианты GML, второй — форматы, оптимизированные под определённые задачи.

В настоящее время популярность приобретает KML (Keyhole Markup Language) — язык описания географических данных, разработанный компанией Keyhole для своей программы Keyhole Earth Viewer. В 2004 году Google приобрела Keyhole, и Keyhole Earth Viewer получила название Google Earth.

KML не является ни прикладной схемой, ни профилем GML, спецификация языка определяется собственной схемой. Данная схема заимствует из GML несколько элементов, описывающих геометрию географических объектов. KML используется в качестве формата географических данных для программы Google Earth и сервисах Карты Google.

Параллельно с КML, бывшим до недавнего времени закрытым форматом, в компании Яндекс для своих геоинформационных сервисов разрабатывался язык YMapsML в виде прикладной схемы GML. В 2008 году KML был опубликован в качестве стандарта OGC. В этом же году была опубликована спецификация YMapsML и API Яндекс.Карт, позволяющий использовать этот язык при работе с геоинформационными сервисами Яндекса.

Отличительными особенностями YMapsML по сравнению с KML являются его простота и лучшая стилизация — возможность определения внешнего вида отображаемых объектов посредством системы стилей и шаблонов. Простота YMapsML обусловлена отсутствием необходимости описания географических данных в трехмерном пространстве (KML используется в Google Earth, работающей с 3D-моделями).

Данные формата YMapsML корректно обрабатываются большинством программных средств, работающих с GML третьей версии.