6 votos

QGIS gotas estilo KML

Hay un plugin para el apoyo a la apertura de los archivos KML con los colores, como en la actualidad el formato KML es compatible, pero los colores y estilos que viene con él se cayó?

He creado un estilo de KML archivo: http://www.files.com/shared/599d872e33689/sierraLeone.kml.zip

Subir a KML visor, se muestra correctamente, pero en QGIS se produce un error. El kml visor de sitio: http://ivanrublev.me/kml/

4voto

Cemre Puntos 153

He encontrado otra manera... Mantenga en el que es difícil ! Pongo aquí esta solución con las principales partes que usted necesita. Es un poco largo para configurar en comparación con el trabajo real, pero puede ser utilizado para amplios conjuntos de datos.

  • Como KML es un archivo XML, puede importar en Excel, por ejemplo, para leer en una forma tabular. Traté de que sin rodeos y obtuvo los siguientes :

XML import

  • Vamos a ver en Google Earth el valor de color. La foto de abajo está en francés pero se puede ver el código HTML de código de color (#algo)

html color

  • Como se puede ver, el código hexadecimal se encuentra en la tabla (en rojo), justo en frente de la columna nombre. Sí, tenemos el nombre del campo y el valor de color.

  • Obtener el nombre y la styleUrl en otra hoja.

  • Limpiar los datos mediante la eliminación de duplicados.

  • Ahora usted debe tener sólo una tabla plana con un nombre y un color de la columna.

Ahora usted tiene una opción. Cualquiera de extraer los valores RGB en Excel o en QGIS. QGIS necesidades al final los valores de R,G,B,a (Rojo, Verde y Azul Alfa) de estilo.


Prepair el valor de color en EXCEL

  • En Excel, primero se tiene que dividir el hexa valores en 3 con operadores de cadena como MID(), para luego convertirlos en decimal con HEX2DEC().

  • A continuación, se necesita volver a montar en un campo de cadena de caracteres para que coincida con QGIS formatear necesidades en los datos de columna definido por el color.

  • Ver aquí : Convertir de HEXADECIMAL a RGB en Excel

xl hexdec


Prepair el valor de color en QGIS

  • En QGIS, la importación, la su anterior nombre + tabla de colores. Unirse a este a su KML basado en el nombre de la columna :

join in QGIS

  • Usted tendrá que crear un poco de función (ver más abajo) para convertir los valores hexa a decimal, pero es casi la misma lógica.

  • Coloque el código siguiente en el editor de la función, a continuación, haga clic en cargar.

hex2dec

"""
Define new functions using @qgsfunction. feature and parent must always be the
last args. Use args=-1 to pass a list of values as arguments
"""

from qgis.core import *
from qgis.gui import *

@qgsfunction(args='auto', group='Custom')
def hex2dex(value1, feature, parent):
    """
        Converts a hex value to decimal
        hex2dec(hexa number)
    """
    return int( value1 ,16)

  • Cuando se hace esto, usted será capaz de utilizarlo como una nueva función :

hex2dec expression editor


La presentación Final

  • Usted necesita para llegar a un final color de la columna formado de esta manera :

Espera de entrada: string [r,g,b,a] int 0-255 Válido tipos de entrada: cadena

color field

  • Vamos a tener una oportunidad. Usted necesita poner el color de relleno como los datos de los campos definidos que apuntan a su formato de campo de color :

data defined

  • Y...Tadaaam !

KML and color and QGIS

  • Comparación con el archivo de origen en Google Earth :

source kml

2voto

Cemre Puntos 153

Esta es una pregunta interesante. Mi investigación sobre el tema llevó al uso de la OGR_STYLE palabra clave , combinado con SQL , pero algo debe de estar mal, no funciona.

El truco es intentar obtener el código XML de estilo de la información y ponerla en un nuevo campo en el archivo SHP usted está escribiendo.

ogr2ogr -f "ESRI Shapefile" -SQL "select *, CAST (OGR_STYLE AS Character (255)) AS style from sierraLeone.kml" "sierraLeone.shp" "sierraLeone.kml"

Esta respuesta no es completa, pero no he encontrado nada más por el momento y mis intentos no tienen éxito. Algunas personas parecen lograr el mismo tipo de manipulación con Mapinfo, ver un ejemplo a continuación (fuente):

"2,9 Utilizando OGR SQL para la transferencia de estilo entre las fuentes de datos

Podemos utilizar el OGR_STYLE campo especial para extraer el nivel de la operación estilo, y ogr2ogr puede ser utilizado para la transferencia de la cadena de estilo entre las fuentes de datos, según el siguiente ejemplo:

ogr2ogr -f "ESRI Shapefile" -sql "select *, OGR_STYLE from rivers"
rivers.shp rivers.tab

Sin especificar la longitud del campo de estilo la salida del controlador puede truncar la longitud de un valor predeterminado. Por lo tanto, puede ser necesario especificar el destino manualmente la longitud, como:

ogr2ogr -f "ESRI Shapefile" -sql "select *, CAST(OGR_STYLE AS
character(255)) from rivers" rivers.shp rivers.tab

OGR es consciente de el uso de la OGR_STYLE campo si existe y OGRFeature::GetStyleString devuelve el valor de este campo si no hay ningún estilo de la cadena han sido se especifican mediante programación."

Véase también una pregunta similar a la tuya discutido aquí :

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X