GML, YMapsML and KML
The industry standard for describing geographical data is GML — Geographic Markup Language. GML is developed and maintained by the OGC (Open Geospatial Consortium) and is an international ISO standard. The first version of the language was released in 2000, and the third, most recent version, in 2007.
GML contains a large number of elements so that geographical objects can be described in great detail. However, the price to be paid for universality is a complex language, a significant amount of data to transfer, and more computing resources.
There are two main ways to adapt GML to specific tasks: profiling, and developing “application schemas”. With the first method, the necessary subset of elements is pulled out of the GML schema using GML's own resources. With the second method, a new schema is created that contains its own elements along with GML elements. The first method is for creating simpler versions of GML, while the second is for creating formats that are optimized for particular tasks.
Recently, KML (Keyhole Markup Language) has become more popular as a language for describing geographical data; it was developed by the company Keyhole for the Keyhole Earth Viewer. In 2004, Google acquired Keyhole, and Keyhole Earth Viewer was renamed Google Earth.
KML is not an application schema or a GML profile; the KML specification is defined by its native schema. This schema borrows several elements from GML that describe the geometry of geographical objects. KML is used as a geographical data format for Google Earth and the Google Maps services.
Parallel to the development of KML, which was a closed format until recently, Yandex was developing the YMapsML language as a GML application schema for its own geoinformation services. In 2008, KML was published as an OGC standard. In the same year the YMapsML specification and Yandex.Maps API were released, enabling the use of this language when accessing Yandex geoinformation services.
When compared with KML, the distinctive features of YMapsML are its simplicity and better stylization, which uses a system of styles and templates to define the visual appearance of objects being displayed. The simplicity of YMapsML is due to the lack of three-dimensional descriptions of geographical data (KML is used in Google Earth, which works with 3D models).
Data in YMapsML format is handled correctly by most software that works with the third version of GML.