GPSBabel: supprimer selon fix

Update 17/06/2008: La modification proposée est intégrée dans les sources de gpsbabel et donc disponible dans la version cvs.

GPSBabel permet de supprimer des waypoints selon le nombre de satellites en visibilité, les dillutions de précision horizontales et verticales (HDOP et VDOP), mais rien pour supprimer les points en <fix>none</fix>.

L’ajout de l’option est plutôt simple et le patch ci-dessous a été soumis pour une inclusion dans la prochaine version de GPSBabel, en attendant, vous pouvez l’appliquer vous même:

--- gpsbabel-1.3.5-beta20080217/discard.c       2008-02-06 03:29:21.000000000 +0100
+++ new/discard.c        2008-03-24 17:16:30.000000000 +0100
@@ -27,6 +27,8 @@
 static char *vdopopt = NULL;
 static char *andopt = NULL;
 static char *satopt = NULL;
+static char *fixnoneopt = NULL;
+static char *fixunknownopt = NULL;
 static double hdopf;
 static double vdopf;
 static int satpf;
@@ -43,6 +45,10 @@
                NULL, ARGTYPE_BOOL, ARG_NOMINMAX},
        {"sat", &amp;satopt, "Minimium sats to keep waypoints",
                "-1.0", ARGTYPE_BEGIN_REQ | ARGTYPE_INT, ARG_NOMINMAX},
+       {"fixnone", &amp;fixnoneopt, "Suppress waypoints without fix",
+               NULL, ARGTYPE_BOOL, ARG_NOMINMAX},
+       {"fixunknown", &amp;fixunknownopt, "Suppress waypoints with unknown fix",
+               NULL, ARGTYPE_BOOL, ARG_NOMINMAX},
        ARG_TERMINATOR
 };

@@ -71,6 +77,12 @@
         if ((satpf &gt;= 0) &amp;&amp; (waypointp-&gt;sat &lt; satpf))
                del = 1;

+        if ((fixnoneopt) &amp;&amp; (waypointp-&gt;fix == fix_none))
+               del = 1;
+
+       if ((fixunknownopt) &amp;&amp; (waypointp-&gt;fix == fix_unknown))
+               del = 1;
+
        if (del) {
                switch(what) {
                        case wptdata:

L’option est alors -x discard,fixnone ou -x discard,fixunknown. On peut bien sur combiner avec -x discard,fixnone,fixunknown.

Leave a Reply

Your email address will not be published. Required fields are marked *