Fix rtept drawing
This commit is contained in:
parent
d2598612ff
commit
ec0ea31b53
1 changed files with 11 additions and 10 deletions
|
@ -85,6 +85,7 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import static net.osmand.GPXUtilities.calculateTrackBounds;
|
||||||
import static net.osmand.plus.dialogs.ConfigureMapMenu.CURRENT_TRACK_COLOR_ATTR;
|
import static net.osmand.plus.dialogs.ConfigureMapMenu.CURRENT_TRACK_COLOR_ATTR;
|
||||||
import static net.osmand.plus.dialogs.ConfigureMapMenu.CURRENT_TRACK_WIDTH_ATTR;
|
import static net.osmand.plus.dialogs.ConfigureMapMenu.CURRENT_TRACK_WIDTH_ATTR;
|
||||||
|
|
||||||
|
@ -460,7 +461,7 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM
|
||||||
QuadRect correctedQuadRect = getCorrectedQuadRect(tileBox.getLatLonBounds());
|
QuadRect correctedQuadRect = getCorrectedQuadRect(tileBox.getLatLonBounds());
|
||||||
for (SelectedGpxFile selectedGpxFile : selectedGPXFiles) {
|
for (SelectedGpxFile selectedGpxFile : selectedGPXFiles) {
|
||||||
boolean showArrows = isShowArrowsForTrack(selectedGpxFile.getGpxFile());
|
boolean showArrows = isShowArrowsForTrack(selectedGpxFile.getGpxFile());
|
||||||
if (!showArrows || !QuadRect.trivialOverlap(correctedQuadRect, GPXUtilities.calculateTrackBounds(selectedGpxFile.getPointsToDisplay()))) {
|
if (!showArrows || !QuadRect.trivialOverlap(correctedQuadRect, calculateTrackBounds(selectedGpxFile.getPointsToDisplay()))) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
String width = getTrackWidthName(selectedGpxFile.getGpxFile(), defaultTrackWidthPref.get());
|
String width = getTrackWidthName(selectedGpxFile.getGpxFile(), defaultTrackWidthPref.get());
|
||||||
|
@ -689,18 +690,18 @@ public class GPXLayer extends OsmandMapLayer implements IContextMenuProvider, IM
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void drawSelectedFileSegments(SelectedGpxFile selectedGpxFile, boolean currentTrack, Canvas canvas,
|
private void drawSelectedFileSegments(SelectedGpxFile selectedGpxFile, boolean currentTrack,
|
||||||
RotatedTileBox tileBox, DrawSettings settings) {
|
Canvas canvas, RotatedTileBox tileBox, DrawSettings settings) {
|
||||||
boolean visible = QuadRect.trivialOverlap(tileBox.getLatLonBounds(), GPXUtilities.calculateTrackBounds(selectedGpxFile.getPointsToDisplay()));
|
GPXFile gpxFile = selectedGpxFile.getGpxFile();
|
||||||
if (!selectedGpxFile.getGpxFile().hasTrkPt() || !visible) {
|
GradientScaleType scaleType = getGradientScaleType(gpxFile);
|
||||||
|
|
||||||
|
boolean visible = QuadRect.trivialOverlap(tileBox.getLatLonBounds(), calculateTrackBounds(selectedGpxFile.getPointsToDisplay()));
|
||||||
|
if (!gpxFile.hasTrkPt() && scaleType != null || !visible) {
|
||||||
segmentsCache.remove(selectedGpxFile.getGpxFile().path);
|
segmentsCache.remove(selectedGpxFile.getGpxFile().path);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
GPXFile gpxFile = selectedGpxFile.getGpxFile();
|
|
||||||
GradientScaleType scaleType = getGradientScaleType(gpxFile);
|
|
||||||
List<TrkSegment> segments = new ArrayList<>();
|
List<TrkSegment> segments = new ArrayList<>();
|
||||||
|
|
||||||
if (scaleType == null) {
|
if (scaleType == null) {
|
||||||
segments.addAll(selectedGpxFile.getPointsToDisplay());
|
segments.addAll(selectedGpxFile.getPointsToDisplay());
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue