Susan Smith has worked as an editor and writer in the technology industry for over 16 years. As an editor she has been responsible for the launch of a number of technology trade publications, both in print and online. Currently, Susan is the Editor of GISCafe and AECCafe, as well as those sites’ … More »
The difference between KML and GML
July 30th, 2009 by Susan Smith
According to president of Galdos Systems, Ron Lake, KML and GML have different purposes – KML is a language for describing visualization and also a browser control language, and GML is about describing kinds of geographic objects. There are no feature types in KML so you cannot differentiate different types of roads, for example, whereas that is the purpose of GML. “You can look at GML as a way of modeling or encoding geographic content so you can have kinds of objects like buildings or schools,” explained Lake. “Then KML is a way of presenting that content visually.”
“Styling” rules are applied to create KML that provides a visual presentation of geographic data in GML. For example, in looking at the GML you have roads with four lanes and road with two lanes, and gravel roads and paved, and you can make a rule that if the road is paved with four lanes then you can generate a default in KML that will draw it as a black line and if it’s a two lane draw it as a red line. This way you can use rules by which you interpret the geography for visual presentation and then you use those rules to generate the KML.
“KML is still rather limited,” said Lake. “If you’re a cartographer or traditional kind of mapmaker you might be kind of dismayed that KML doesn’t support things like dash lines or railroad tracks. It’s still fairly simple but you can do all this interactivity, which compensates for part of that.” Similar issues exist in 3D, for example, “CityGML is a multilevel of detail modeling language so you can model cities with a very coarse level of detail but it’s not really intended for visual presentation. For this you would style CityGML say into something like Collada, .obj or x3D which are the encodings that are used by Google Earth and by Microsoft Virtual Earth 3D.”
“The idea is to try and separate your modeling of the world from presentation so that you can as be as flexible as possible in terms of how you present content. You might have the same geographic data and you might present it quite differently for a civilian audience vs a military audience even if it’s the same information.”