X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=tim%2Fprune%2Ffunction%2Fsrtm%2FLookupSrtmFunction.java;h=15997448e038e6f4bb6e9f4b9437c99491b18a6e;hb=81843c3d8d0771bf00d0f26034a13aa515465c78;hp=2ed145439227af2d7ddf2e37ff2b1262698aece0;hpb=326f489e36aa7f235bc19409a57bf4955cd50f24;p=GpsPrune.git diff --git a/tim/prune/function/srtm/LookupSrtmFunction.java b/tim/prune/function/srtm/LookupSrtmFunction.java index 2ed1454..1599744 100644 --- a/tim/prune/function/srtm/LookupSrtmFunction.java +++ b/tim/prune/function/srtm/LookupSrtmFunction.java @@ -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