domingo, 10 de abril de 2011

Descripción técnica de un archivo KML y KMZ

Los archivos KML (siglas en ingles de Keyhole Markup Language) y el KMZ (que es una versión del KML comprimido – el Z al final seria* de Zip) son unos archivos usados por el Google Earth y es usado tanto por los usuarios de las herramientas GIS como también el público en general. Quizá gracias a ellos la teoría del GIS se acerca más a la vida diaria de las personas y el concepto de ubicación, georeferenciación es más familiar.

Diferencia entre los archivos KML y KMZ: como se dijo anteriormente, un archivo KMZ es una versión comprimida del KML, haciendo uso de un comprimidor/descomprimidor podemos descomprimir un KMZ y se generara el KML.

¿Qué programas se pueden crear, editar y visualizar un KML y KMZ?: principalmente es el Google Earth crea, visualizar y editar estos archivos. Hay algunos scripts o rutinas de algunas herramientas GIS que pueden exportar su información a KML.

¿Está vinculada a una base de datos?: Cada entidad de un KML o KMZ puede presentar una información en sus propiedades con atributos que el usuario lo define.

Para poner estas propiedades hacer lo siguiente:

CAMPO01=VALOR_01
CAMPO02=VALOR_02

Donde el
es el separador de campos

Usos del KML y del KMZ:

-Usar un KMZ en vez de un KML si se quiere un archivo con menor tamaño en bytes ya que el KMZ es un KML comprimido.

-Si se quiere guardar una imagen superpuesta, usar un KMZ ya que dentro del mismo está guardada la imagen.

-Para fines de programación, usar el KML ya que al abrirlo con un editor de texto como el Notepad.exe se verá su estructura interna (ver en Estructura de un archivo KML). Si se abre un KMZ con el Notepad.exe se verá caracteres ilegibles típicos de un archivo Binario.

Creación de un KML mediante el Notepad.exe: el KML es un archivo de tipo secuencial por lo mismo que se puede ver su contenido con el Notepad.exe. Por ejemplo, si queremos ver este punto:





con el notepad.exe, veremos:


<?xml version="1.0" encoding="UTF-8"?>

<kml xmlns="http://www.opengis.net/kml/2.2" >

<Document>



<name>MI_PTO.kml</name>

<Style id="sn_polygon">



<IconStyle>

<color>ff00ffff</color>

<scale>1.2</scale>

<Icon>

<href>http://maps.google.com/mapfiles/kml/shapes/polygon.png</href>

</Icon>

</IconStyle>

<ListStyle>

</ListStyle>

</Style>

<StyleMap id="msn_polygon">

<Pair>

<key>normal</key>

<styleUrl>#sn_polygon</styleUrl>

</Pair>

<Pair>

<key>highlight</key>

<styleUrl>#sh_polygon</styleUrl>

</Pair>

</StyleMap>

<Style id="sh_polygon">

<IconStyle>

<color>ff00ffff</color>

<scale>1.4</scale>

<Icon>

<href>http://maps.google.com/mapfiles/kml/shapes/polygon.png</href>

</Icon>

</IconStyle>

<ListStyle>

</ListStyle>

</Style>

<Placemark>

<name>MI_PTO</name>

<LookAt>

<longitude>-74.74278616176832</longitude>

<latitude>-12.11507855798878</latitude>

<altitude>0</altitude>

<range>192867.8342992345</range>

<tilt>0</tilt>

<heading>2.241538978950665</heading>

<altitudeMode>relativeToGround</altitudeMode>

<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>

</LookAt>

<styleUrl>#msn_polygon</styleUrl>

<Point>

<coordinates>-74.74278616176832,-12.11507855798878,0</coordinates>

</Point>

</Placemark>

</Document>

</kml>






Ahora modificando las cantidades de algunos, se puede agregar, eliminar características de este punto.

La explicación de los códigos de un KML son:


<?xml version="1.0" encoding="UTF-8"?>



<kml xmlns="http://www.opengis.net/kml/2.2" >



<Document>




Que son los encabezados de apertura del KML. Ahora, en la parte de:


<kml xmlns="http://www.opengis.net/kml/2.2" >, puede variar con más argumentos tales como



<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">




--------------------------------------------------------------------------------------------------------------------------------


<name>MI_PTO.kml</name>

Que es el nombre del archivo en cuestión.

--------------------------------------------------------------------------------------------------------------------------------


<Style id="sn_polygon">







<IconStyle>



<color>ff00ffff</color>



<scale>1.2</scale>



<Icon>



<href>http://maps.google.com/mapfiles/kml/shapes/polygon.png</href>



</Icon>



</IconStyle>



<ListStyle>



</ListStyle>



</Style>



<StyleMap id="msn_polygon">



<Pair>



<key>normal</key>



<styleUrl>#sn_polygon</styleUrl>



</Pair>



<Pair>



<key>highlight</key>



<styleUrl>#sh_polygon</styleUrl>



</Pair>



</StyleMap>



<Style id="sh_polygon">



<IconStyle>



<color>ff00ffff</color>



<scale>1.4</scale>



<Icon>



<href>http://maps.google.com/mapfiles/kml/shapes/polygon.png</href>



</Icon>



</IconStyle>



<ListStyle>



</ListStyle>



</Style>





Todo esto llama al estilo de Punto y a la ubicación del Punto.

--------------------------------------------------------------------------------------------------------------------------------


<Placemark>



<name>MI_PTO</name>



<LookAt>



<longitude>-74.74278616176832</longitude>



<latitude>-12.11507855798878</latitude>



<altitude>0</altitude>



<range>192867.8342992345</range>



<tilt>0</tilt>



<heading>2.241538978950665</heading>



<altitudeMode>relativeToGround</altitudeMode>



<gx:altitudeMode>relativeToSeaFloor</gx:altitudeMode>



</LookAt>



<styleUrl>#msn_polygon</styleUrl>



<Point>



<coordinates>-74.74278616176832,-12.11507855798878,0</coordinates>



</Point>



</Placemark>



Donde:



<Point>



<coordinates>-74.74278616176832,-12.11507855798878,0</coordinates>



</Point>








Es el punto mostrado (recordar que el Datum de este Punto es WGS84):


<Point> (Inicio de la entidad Punto)



<coordinates> (Inicio de la entrada de las coordenadas)



-74.74278616176832,-12.11507855798878,0 (Coordenadas en Longitud, Latitud y Cota del Punto)



</coordinates> (Fin de la entrada de las coordenadas)



</Point> (Fin de la entidad Punto)




--------------------------------------------------------------------------------------------------------------------------------






</Document>



</kml>




El cierre del KML.

--------------------------------------------------------------------------------------------------------------------------------

Para el caso de una Polilinea (llamada en el KML como LineString), este es un ejemplo:


<LineString>



<coordinates>



-74.69857646056778,-13.07390923079123,92.92473334912211 -74.65393927548517,-13.1405384741763,93.19272104930133 -74.71345843452006,-13.23420479465286,94.0505408635363 -74.66485382106956,-13.38291289817487,94.84941752813757



</coordinates>



</LineString>




Para el caso de una Polígono (llamada en el KML como Polygon), este es un ejemplo:


<Polygon>



<coordinates>



-74.54680674793012,-13.10577642595669,92.54023861233145 -74.54879123387217,-13.15309232282248,92.86317398585379 -74.57557440846318,-13.16661107539545,93.05836565978825 -74.59342943958839,-13.20427085547264,93.3792914589867 -74.57458330841025,-13.27476187634272,93.77472938783467 -74.53589795650653,-13.29504116069222,93.75799865927547 -74.47141926297643,-13.27862573171318,93.39591350033879 -74.45554817348445,-13.22551596343736,92.97995178867132 -74.47241027295505,-13.15985294344367,92.60860492754728 -74.54680674793012,-13.10577642595669,92.54023861233145



</coordinates>



</Polygon>








Para mas explicación podemos ir a la pagina http://code.google.com/intl/es-ES/apis/kml/documentation/kmlreference.html donde explica as detalladamente sobre este tema.

Esperando que sea de su provecho, si tuvieran alguna consulta o comentario, lo pueden hacer al correo recursos.web.gis@gmail.com ó a info@ingeografos.com.pe. Gracias y saludos.

ª