# GML, YMapsML и KML

Отраслевым стандартом, используемым для описания географических данных, является [GML](http://www.ogcnetwork.net/gml) — Geographic Markup Language. GML разрабатывается и поддерживается [консорциумом OGC](http://www.opengeospatial.org/) (Open Geospatial Consortium) и является международным [стандартом ISO](http://www.iso.org/iso/catalogue_detail.htm?csnumber=32554). Первая версия языка была выпущена в 2000 году, а последняя, третья — в 2007.

GML содержит [большое количество элементов](http://portal.opengeospatial.org/files/?artifact_id=20509) и позволяет описывать географические объекты чрезвычайно подробно. Однако за универсальность приходится расплачиваться сложностью языка, значительным количеством передаваемых данных и вычислительными ресурсами.

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

В настоящее время популярность приобретает [KML](http://www.opengeospatial.org/standards/kml) (Keyhole Markup Language) — язык описания географических данных, разработанный компанией Keyhole для своей программы Keyhole Earth Viewer. В 2004 году Google [приобрела Keyhole](http://www.google.com/press/pressrel/keyhole.html), и Keyhole Earth Viewer получила название Google Earth.

KML не является ни прикладной схемой, ни профилем GML, спецификация языка определяется [собственной схемой](http://code.google.com/intl/ru/apis/kml/schema/kml21.xsd). Данная схема заимствует из GML несколько элементов, описывающих геометрию географических объектов. KML используется в качестве формата географических данных для программы Google Earth и сервисах Карты Google.

Параллельно с КML, бывшим до недавнего времени закрытым форматом, в компании Яндекс для своих геоинформационных сервисов разрабатывался язык YMapsML в виде прикладной схемы GML. В 2008 году KML был опубликован в качестве стандарта OGC. В этом же году была опубликована [спецификация YMapsML](https://yandex.ru/dev/maps/ymapsml/) и  [API Яндекс.Карт](https://tech.yandex.ru/maps/) , позволяющий использовать этот язык при работе с геоинформационными сервисами Яндекса.

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

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