/** * @return list of lat lon */ List<List<Double>> createStartPoints() { List<List<Double>> res = new ArrayList<>(instructions.size()); for (Instruction instruction : instructions) { res.add(Arrays.asList(instruction.getFirstLat(), instruction.getFirstLon())); } return res; }
private void createWayPointBlock(StringBuilder output, Instruction instruction, DecimalFormat decimalFormat) { output.append("\n<wpt "); output.append("lat=\"").append(decimalFormat.format(instruction.getFirstLat())); output.append("\" lon=\"").append(decimalFormat.format(instruction.getFirstLon())).append("\">"); String name; if (instruction.getName().isEmpty()) name = instruction.getTurnDescription(tr); else name = instruction.getName(); output.append(" <name>").append(simpleXMLEscape(name)).append("</name>"); output.append("</wpt>"); }
public void createRteptBlock(StringBuilder output, Instruction instruction, Instruction nextI, DecimalFormat decimalFormat) { output.append("\n<rtept lat=\"").append(decimalFormat.format(instruction.getFirstLat())). append("\" lon=\"").append(decimalFormat.format(instruction.getFirstLon())).append("\">"); if (!instruction.getName().isEmpty()) output.append("<desc>").append(simpleXMLEscape(instruction.getTurnDescription(tr))).append("</desc>"); output.append("<extensions>"); output.append("<gh:distance>").append(Helper.round(instruction.getDistance(), 1)).append("</gh:distance>"); output.append("<gh:time>").append(instruction.getTime()).append("</gh:time>"); String direction = instruction.calcDirection(nextI); if (!direction.isEmpty()) output.append("<gh:direction>").append(direction).append("</gh:direction>"); double azimuth = instruction.calcAzimuth(nextI); if (!Double.isNaN(azimuth)) output.append("<gh:azimuth>").append(Helper.round2(azimuth)).append("</gh:azimuth>"); if (instruction instanceof RoundaboutInstruction) { RoundaboutInstruction ri = (RoundaboutInstruction) instruction; output.append("<gh:exit_number>").append(ri.getExitNumber()).append("</gh:exit_number>"); } output.append("<gh:sign>").append(instruction.getSign()).append("</gh:sign>"); output.append("</extensions>"); output.append("</rtept>"); }
/** * @return This method returns a list of gpx entries where the time (in millis) is relative to * the first which is 0. */ public List<GPXEntry> createGPXList() { if (isEmpty()) return Collections.emptyList(); List<GPXEntry> gpxList = new ArrayList<>(); long timeOffset = 0; for (int i = 0; i < size() - 1; i++) { Instruction prevInstr = (i > 0) ? get(i - 1) : null; boolean instrIsFirst = prevInstr == null; Instruction nextInstr = get(i + 1); nextInstr.checkOne(); // current instruction does not contain last point which is equals to first point of next instruction: timeOffset = get(i).fillGPXList(gpxList, timeOffset, prevInstr, nextInstr, instrIsFirst); } Instruction lastI = get(size() - 1); if (lastI.points.size() != 1) throw new IllegalStateException("Last instruction must have exactly one point but was " + lastI.points.size()); double lastLat = lastI.getFirstLat(), lastLon = lastI.getFirstLon(), lastEle = lastI.getPoints().is3D() ? lastI.getFirstEle() : Double.NaN; gpxList.add(new GPXEntry(lastLat, lastLon, lastEle, timeOffset)); return gpxList; }
double nextLat = last ? nextInstr.getFirstLat() : points.getLatitude(i + 1); double nextLon = last ? nextInstr.getFirstLon() : points.getLongitude(i + 1); double nextEle = is3D ? (last ? nextInstr.getFirstEle() : points.getElevation(i + 1)) : Double.NaN;
assertEquals(15, wayList.get(0).getFirstLat(), 1e-3); assertEquals(10, wayList.get(0).getFirstLon(), 1e-3); assertEquals(15.1, wayList.get(1).getFirstLat(), 1e-3); assertEquals(10, wayList.get(1).getFirstLon(), 1e-3); assertEquals(15.1, wayList.get(2).getFirstLat(), 1e-3); assertEquals(9.9, wayList.get(2).getFirstLon(), 1e-3);
/** * @return list of lat lon */ List<List<Double>> createStartPoints() { List<List<Double>> res = new ArrayList<List<Double>>(instructions.size()); for (Instruction instruction : instructions) { res.add(Arrays.asList(instruction.getFirstLat(), instruction.getFirstLon())); } return res; }
/** * @return list of lat lon */ List<List<Double>> createStartPoints() { List<List<Double>> res = new ArrayList<>(instructions.size()); for (Instruction instruction : instructions) { res.add(Arrays.asList(instruction.getFirstLat(), instruction.getFirstLon())); } return res; }
/** * @return list of lat lon */ List<List<Double>> createStartPoints() { List<List<Double>> res = new ArrayList<List<Double>>(instructions.size()); for (Instruction instruction : instructions) { res.add(Arrays.asList(instruction.getFirstLat(), instruction.getFirstLon())); } return res; }
private void createWayPointBlock(StringBuilder output, Instruction instruction, DecimalFormat decimalFormat) { output.append("\n<wpt "); output.append("lat=\"").append(decimalFormat.format(instruction.getFirstLat())); output.append("\" lon=\"").append(decimalFormat.format(instruction.getFirstLon())).append("\">"); String name; if (instruction.getName().isEmpty()) name = instruction.getTurnDescription(tr); else name = instruction.getName(); output.append(" <name>").append(simpleXMLEscape(name)).append("</name>"); output.append("</wpt>"); }
private void createWayPointBlock(StringBuilder output, Instruction instruction) { output.append("\n<wpt "); output.append("lat=\"").append(Helper.round6(instruction.getFirstLat())); output.append("\" lon=\"").append(Helper.round6(instruction.getFirstLon())).append("\">"); String name; if (instruction.getName().isEmpty()) name = instruction.getTurnDescription(tr); else name = instruction.getName(); output.append(" <name>").append(simpleXMLEscape(name)).append("</name>"); output.append("</wpt>"); }
private void createWayPointBlock( StringBuilder output, Instruction instruction ) { output.append("\n<wpt "); output.append("lat=\"").append(Helper.round6(instruction.getFirstLat())); output.append("\" lon=\"").append(Helper.round6(instruction.getFirstLon())).append("\">"); String name; if (instruction.getName().isEmpty()) name = instruction.getTurnDescription(tr); else name = instruction.getName(); output.append(" <name>").append(simpleXMLEscape(name)).append("</name>"); output.append("</wpt>"); }
public void createRteptBlock(StringBuilder output, Instruction instruction, Instruction nextI) { output.append("\n<rtept lat=\"").append(Helper.round6(instruction.getFirstLat())). append("\" lon=\"").append(Helper.round6(instruction.getFirstLon())).append("\">"); if (!instruction.getName().isEmpty()) output.append("<desc>").append(simpleXMLEscape(instruction.getTurnDescription(tr))).append("</desc>"); output.append("<extensions>"); output.append("<gh:distance>").append(Helper.round(instruction.getDistance(), 1)).append("</gh:distance>"); output.append("<gh:time>").append(instruction.getTime()).append("</gh:time>"); String direction = instruction.calcDirection(nextI); if (!direction.isEmpty()) output.append("<gh:direction>").append(direction).append("</gh:direction>"); double azimuth = instruction.calcAzimuth(nextI); if (!Double.isNaN(azimuth)) output.append("<gh:azimuth>").append(Helper.round2(azimuth)).append("</gh:azimuth>"); output.append("<gh:sign>").append(instruction.getSign()).append("</gh:sign>"); output.append("</extensions>"); output.append("</rtept>"); }
public void createRteptBlock(StringBuilder output, Instruction instruction, Instruction nextI, DecimalFormat decimalFormat) { output.append("\n<rtept lat=\"").append(decimalFormat.format(instruction.getFirstLat())). append("\" lon=\"").append(decimalFormat.format(instruction.getFirstLon())).append("\">"); if (!instruction.getName().isEmpty()) output.append("<desc>").append(simpleXMLEscape(instruction.getTurnDescription(tr))).append("</desc>"); output.append("<extensions>"); output.append("<gh:distance>").append(Helper.round(instruction.getDistance(), 1)).append("</gh:distance>"); output.append("<gh:time>").append(instruction.getTime()).append("</gh:time>"); String direction = instruction.calcDirection(nextI); if (!direction.isEmpty()) output.append("<gh:direction>").append(direction).append("</gh:direction>"); double azimuth = instruction.calcAzimuth(nextI); if (!Double.isNaN(azimuth)) output.append("<gh:azimuth>").append(Helper.round2(azimuth)).append("</gh:azimuth>"); if (instruction instanceof RoundaboutInstruction) { RoundaboutInstruction ri = (RoundaboutInstruction) instruction; output.append("<gh:exit_number>").append(ri.getExitNumber()).append("</gh:exit_number>"); } output.append("<gh:sign>").append(instruction.getSign()).append("</gh:sign>"); output.append("</extensions>"); output.append("</rtept>"); }
public void createRteptBlock( StringBuilder output, Instruction instruction, Instruction nextI ) { output.append("\n<rtept lat=\"").append(Helper.round6(instruction.getFirstLat())). append("\" lon=\"").append(Helper.round6(instruction.getFirstLon())).append("\">"); if (!instruction.getName().isEmpty()) output.append("<desc>").append(simpleXMLEscape(instruction.getTurnDescription(tr))).append("</desc>"); output.append("<extensions>"); output.append("<gh:distance>").append(Helper.round(instruction.getDistance(), 1)).append("</gh:distance>"); output.append("<gh:time>").append(instruction.getTime()).append("</gh:time>"); String direction = instruction.calcDirection(nextI); if (!direction.isEmpty()) output.append("<gh:direction>").append(direction).append("</gh:direction>"); double azimuth = instruction.calcAzimuth(nextI); if (!Double.isNaN(azimuth)) output.append("<gh:azimuth>").append(Helper.round2(azimuth)).append("</gh:azimuth>"); output.append("<gh:sign>").append(instruction.getSign()).append("</gh:sign>"); output.append("</extensions>"); output.append("</rtept>"); }
/** * @return This method returns a list of gpx entries where the time (in millis) is relative to * the first which is 0. */ public List<GPXEntry> createGPXList() { if (isEmpty()) return Collections.emptyList(); List<GPXEntry> gpxList = new ArrayList<>(); long timeOffset = 0; for (int i = 0; i < size() - 1; i++) { Instruction prevInstr = (i > 0) ? get(i - 1) : null; boolean instrIsFirst = prevInstr == null; Instruction nextInstr = get(i + 1); nextInstr.checkOne(); // current instruction does not contain last point which is equals to first point of next instruction: timeOffset = get(i).fillGPXList(gpxList, timeOffset, prevInstr, nextInstr, instrIsFirst); } Instruction lastI = get(size() - 1); if (lastI.points.size() != 1) throw new IllegalStateException("Last instruction must have exactly one point but was " + lastI.points.size()); double lastLat = lastI.getFirstLat(), lastLon = lastI.getFirstLon(), lastEle = lastI.getPoints().is3D() ? lastI.getFirstEle() : Double.NaN; gpxList.add(new GPXEntry(lastLat, lastLon, lastEle, timeOffset)); return gpxList; }
/** * @return This method returns a list of gpx entries where the time (in millis) is relative to * the first which is 0. * <p> */ public List<GPXEntry> createGPXList() { if (isEmpty()) return Collections.emptyList(); List<GPXEntry> gpxList = new ArrayList<GPXEntry>(); long timeOffset = 0; for (int i = 0; i < size() - 1; i++) { Instruction prevInstr = (i > 0) ? get(i - 1) : null; boolean instrIsFirst = prevInstr == null; Instruction nextInstr = get(i + 1); nextInstr.checkOne(); // current instruction does not contain last point which is equals to first point of next instruction: timeOffset = get(i).fillGPXList(gpxList, timeOffset, prevInstr, nextInstr, instrIsFirst); } Instruction lastI = get(size() - 1); if (lastI.points.size() != 1) throw new IllegalStateException("Last instruction must have exactly one point but was " + lastI.points.size()); double lastLat = lastI.getFirstLat(), lastLon = lastI.getFirstLon(), lastEle = lastI.getPoints().is3D() ? lastI.getFirstEle() : Double.NaN; gpxList.add(new GPXEntry(lastLat, lastLon, lastEle, timeOffset)); return gpxList; }
/** * @return This method returns a list of gpx entries where the time (in millis) is relative to * the first which is 0. * <p> */ public List<GPXEntry> createGPXList() { if (isEmpty()) return Collections.emptyList(); List<GPXEntry> gpxList = new ArrayList<GPXEntry>(); long timeOffset = 0; for (int i = 0; i < size() - 1; i++) { Instruction prevInstr = (i > 0) ? get(i - 1) : null; boolean instrIsFirst = prevInstr == null; Instruction nextInstr = get(i + 1); nextInstr.checkOne(); // current instruction does not contain last point which is equals to first point of next instruction: timeOffset = get(i).fillGPXList(gpxList, timeOffset, prevInstr, nextInstr, instrIsFirst); } Instruction lastI = get(size() - 1); if (lastI.points.size() != 1) throw new IllegalStateException("Last instruction must have exactly one point but was " + lastI.points.size()); double lastLat = lastI.getFirstLat(), lastLon = lastI.getFirstLon(), lastEle = lastI.getPoints().is3D() ? lastI.getFirstEle() : Double.NaN; gpxList.add(new GPXEntry(lastLat, lastLon, lastEle, timeOffset)); return gpxList; }
double nextLat = last ? nextInstr.getFirstLat() : points.getLatitude(i + 1); double nextLon = last ? nextInstr.getFirstLon() : points.getLongitude(i + 1); double nextEle = is3D ? (last ? nextInstr.getFirstEle() : points.getElevation(i + 1)) : Double.NaN;
double nextLat = last ? nextInstr.getFirstLat() : points.getLatitude(i + 1); double nextLon = last ? nextInstr.getFirstLon() : points.getLongitude(i + 1); double nextEle = is3D ? (last ? nextInstr.getFirstEle() : points.getElevation(i + 1)) : Double.NaN;