google coordenadas convertir xml gps xslt-1.0 gpx

xml - coordenadas - Alternando colores en GPX-Tracks



gps visualizer elevation (1)

Esta pregunta se refiere a: ¿Cómo resumir, agrupar más de 4000 puntos de seguimiento de GPX como pistas nombradas para la fecha de cada día?

Garmin GPS-Tracks proporciona la opción de definir un color diferente para cada pista.

Como una perfección para el resultado de la pregunta de referencia, me pregunto cómo aplicar colores alternativos para cada pista de GPS. Por ejemplo, el 1er. pista (todos los puntos de seguimiento para ese día) son coloreados ''Magenta'' el 2do. el día está coloreado ''DarkGray'' y el tercero. día otra vez ''Magenta''.

Usar el nodo (fecha) para alternar entre días impares o pares a menudo produciría el mismo color durante 2 días. Por ejemplo: del 31 de marzo al 1 de abril. recibiría los mismos colores

Los colores se aplican al nodo: <gpxx: DisplayColor>

¿Cómo se puede lograr esto utilizando el código proporcionado en la respuesta de la pregunta de referencia?

<trk> <name>ACTIVE LOG</name> <extensions> <gpxx:TrackExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"> <gpxx:DisplayColor>Magenta</gpxx:DisplayColor> </gpxx:TrackExtension> </extensions> <trkseg>


Puede dividir la position() entre 2 y verificar si hay un resto.

<xsl:stylesheet version="1.0" xmlns="http://www.topografix.com/GPX/1/1" xmlns:gpx="http://www.topografix.com/GPX/1/1" xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="gpx"> <xsl:output indent="yes" encoding="utf-8"/> <xsl:strip-space elements="*"/> <xsl:key name="date" match="gpx:trkpt" use="substring(gpx:time,1,10)"/> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="/*"> <xsl:copy> <xsl:apply-templates select="@*"/> <xsl:for-each select="//gpx:trkpt[generate-id(key(''date'',substring(gpx:time,1,10))[1])=generate-id()]"> <trk> <name>Trackpoints: <xsl:value-of select="substring(gpx:time,1,10)"/></name> <extensions> <gpxx:TrackExtension> <xsl:choose> <xsl:when test="position() mod 2 = 1"> <gpxx:DisplayColor>Magenta</gpxx:DisplayColor> </xsl:when> <xsl:otherwise> <gpxx:DisplayColor>DarkGray</gpxx:DisplayColor> </xsl:otherwise> </xsl:choose> </gpxx:TrackExtension> </extensions> <trkseg> <xsl:for-each select="key(''date'',substring(gpx:time,1,10))"> <xsl:copy-of select="."/> </xsl:for-each> </trkseg> </trk> </xsl:for-each> </xsl:copy> </xsl:template> </xsl:stylesheet>