Fix spoiled points
This commit is contained in:
parent
149b89090b
commit
aa6b04a924
2 changed files with 22 additions and 1 deletions
|
@ -2139,16 +2139,29 @@ public class GpxUiHelper {
|
||||||
float h = (float) l.getAltitude();
|
float h = (float) l.getAltitude();
|
||||||
point.ele = h;
|
point.ele = h;
|
||||||
if (lastHeight == HEIGHT_UNDEFINED && seg.points.size() > 0) {
|
if (lastHeight == HEIGHT_UNDEFINED && seg.points.size() > 0) {
|
||||||
for (GPXUtilities.WptPt pt : seg.points) {
|
for (int i = seg.points.size() - 1; i >= 0; i--) {
|
||||||
|
GPXUtilities.WptPt pt = seg.points.get(i);
|
||||||
if (Double.isNaN(pt.ele)) {
|
if (Double.isNaN(pt.ele)) {
|
||||||
pt.ele = h;
|
pt.ele = h;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lastHeight = h;
|
lastHeight = h;
|
||||||
|
} else {
|
||||||
|
lastHeight = HEIGHT_UNDEFINED;
|
||||||
}
|
}
|
||||||
seg.points.add(point);
|
seg.points.add(point);
|
||||||
}
|
}
|
||||||
|
if (lastHeight == HEIGHT_UNDEFINED && gpx.hasAltitude) {
|
||||||
|
int start = seg.points.size() - 1;
|
||||||
|
while (start > 0 && Double.isNaN(seg.points.get(start).ele)) {
|
||||||
|
start--;
|
||||||
|
}
|
||||||
|
double ele = seg.points.get(start).ele;
|
||||||
|
for (int i = start + 1; i < seg.points.size(); i++) {
|
||||||
|
seg.points.get(i).ele = ele;
|
||||||
|
}
|
||||||
|
}
|
||||||
track.segments.add(seg);
|
track.segments.add(seg);
|
||||||
gpx.tracks.add(track);
|
gpx.tracks.add(track);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import android.graphics.Bitmap;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.graphics.PointF;
|
import android.graphics.PointF;
|
||||||
|
|
||||||
|
import net.osmand.GPXUtilities;
|
||||||
import net.osmand.GPXUtilities.GPXFile;
|
import net.osmand.GPXUtilities.GPXFile;
|
||||||
import net.osmand.Location;
|
import net.osmand.Location;
|
||||||
import net.osmand.data.RotatedTileBox;
|
import net.osmand.data.RotatedTileBox;
|
||||||
|
@ -71,6 +72,13 @@ public class RouteGeometryWay extends GeometryWay<RouteGeometryWayContext, Route
|
||||||
updateWay(locations, tb);
|
updateWay(locations, tb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Start point can have wrong zero altitude
|
||||||
|
List<GPXUtilities.WptPt> pts = gpxFile.tracks.get(0).segments.get(0).points;
|
||||||
|
GPXUtilities.WptPt firstPt = pts.get(0);
|
||||||
|
if (firstPt.ele == 0) {
|
||||||
|
firstPt.ele = pts.get(1).ele;
|
||||||
|
}
|
||||||
|
|
||||||
RouteColorize routeColorize = new RouteColorize(tb.getZoom(), gpxFile, null, scaleType.toColorizationType(), 0);
|
RouteColorize routeColorize = new RouteColorize(tb.getZoom(), gpxFile, null, scaleType.toColorizationType(), 0);
|
||||||
List<RouteColorizationPoint> points = routeColorize.getResult(false);
|
List<RouteColorizationPoint> points = routeColorize.getResult(false);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue