]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/function/srtm/LookupSrtmFunction.java
Version 18.6, December 2016
[GpsPrune.git] / tim / prune / function / srtm / LookupSrtmFunction.java
index 2ed145439227af2d7ddf2e37ff2b1262698aece0..15997448e038e6f4bb6e9f4b9437c99491b18a6e 100644 (file)
@@ -228,13 +228,18 @@ public class LookupSrtmFunction extends GenericFunction implements Runnable
                                                                                        + (fouralts[2]==VOID_VAL?1:0) + (fouralts[3]==VOID_VAL?1:0);
                                                                                // if (numVoids > 0) System.out.println(numVoids + " voids found");
                                                                                double altitude = 0.0;
-                                                                               switch (numVoids) {
+                                                                               switch (numVoids)
+                                                                               {
                                                                                        case 0: altitude = bilinearInterpolate(fouralts, x, y); break;
                                                                                        case 1: altitude = bilinearInterpolate(fixVoid(fouralts), x, y); break;
                                                                                        case 2:
                                                                                        case 3: altitude = averageNonVoid(fouralts); break;
                                                                                        default: altitude = VOID_VAL;
                                                                                }
+                                                                               // Special case for terrain tracks, don't interpolate voids yet
+                                                                               if (!_normalTrack && numVoids > 0) {
+                                                                                       altitude = VOID_VAL;
+                                                                               }
                                                                                if (altitude != VOID_VAL)
                                                                                {
                                                                                        point.setFieldValue(Field.ALTITUDE, ""+altitude, false);
@@ -299,7 +304,8 @@ public class LookupSrtmFunction extends GenericFunction implements Runnable
                        if (srtmDir.exists() && srtmDir.isDirectory() && srtmDir.canRead())
                        {
                                File srtmFile = new File(srtmDir, new File(inUrl.getFile()).getName());
-                               if (srtmFile.exists() && srtmFile.isFile() && srtmFile.canRead())
+                               if (srtmFile.exists() && srtmFile.isFile() && srtmFile.canRead()
+                                       && srtmFile.length() > 400)
                                {
                                        // System.out.println("Lookup: Using file " + srtmFile.getAbsolutePath());
                                        // File found, use this one