Para importar un acrchivo KML creado por GoogleEarth a QGIS hay que hacer unos trucos muy sencillos, dependiendo de lo que se desee hacer, en este ejemplo muestro como yo lo hago, para ello estoy usando QGIS 1.7.4 Wroclaw con GRASS 6.4 en Slackware Linux 14.0 instalados desde SlackBuilds con todas las dependencias.
Primero se crea el archivo desde GoogleEarth, en mi caso es un archivo de rutas (canales) digitalizadas y guardadas como KML desde el mismo programa. Es importante mencionar que puede haber problemas con el archivo generado por GoogleEarth si la versión de la aplicación es muy vieja por lo que se recomienda usar una versión reciente.
Además hay que asegurarse de guardar el archivo en formato KML, pues por omisión el programa lo guardará en un KMZ, éste último no es más que un archivo KML comprimido por lo tanto con descomprimirlo bastará para tener un KML que regularmente se llama doc.kml. En Windows puede que sea necesario cambiar la extensión del archivo por ZIP (o alguna otra) antes de realizar la descompresión. En Linux hay muchas herramientas para realizar esto, por mi parte elegí hacerlo con Ark de KDE (incluye unrar y p7zip):
Ya que se tiene este archivo se puede agregar directamente el KML mediante el menú de QGIS Capa > Añadir capa vectorial y seleccionando en la ventana el filtro para Keyhole Markup Language [KML] [OGR].
Otra forma de agregar los datos es haciendo una conversión de KML a SHP. ¿Por qué? bueno por cuestiones de edición, para mí es más fácil y cómodo editar un shapefile y los KML son más bien para visualizar información, además un SHP es el estándar de facto para representar vectoriales así que bien puedo manejar mis datos en diferentes programas y sistemas operativos.
Para hacer la conversión basta hacer en el terminal:
$ ogr2ogr -f 'ESRI Shapefile' Canales.shp doc.kml
Ahora si se puede agregar y editar la capa más cómodamente.
NOTA: Al parecer QGIS es capaz de reconocer archivos KMZ de manera automática siempre y cuando se tenga soporte para el Google LIBKML en GDAL (1.9). Si se tiene entonces al importar una capa solo hay que seleccionar Todos los archivos (*) y abrir el KMZ. Si no se tiene saldrá un error. Para checar si se tiene este soporte (creo que debería poderse agregar durante la compilación, la verdad lo ignoro) en la consola de Python de QGIS ejecutar:
import osgeo.ogr
print 'Has LIBKML ogr driver: ' + str(osgeo.ogr.GetDriverByName('LIBKML') is not None)
Fuentes: