/** colour by hour of day */
 private static void drawPositionsHod(SvgFile svg, List<UserData> users, boolean showPoints) {
   float strokeWidth = 0.5f;
   for (UserData user : users) {
     Position lp = null;
     Position lastGoodp = null;
     for (Position p : user.getPositions()) {
       String stroke = getColour(scaleHod(p.getHourOfDay()));
       if (lp != null && !lp.isTruncated() && !p.isTruncated()) {
         svg.line(
             scaleX(lp.getX()),
             scaleY(lp.getY()),
             scaleX(p.getX()),
             scaleY(p.getY()),
             stroke,
             strokeWidth);
       } else if (lastGoodp != null && !p.isTruncated()) {
         svg.line(
             scaleX(lastGoodp.getX()),
             scaleY(lastGoodp.getY()),
             scaleX(p.getX()),
             scaleY(p.getY()),
             stroke,
             strokeWidth,
             "stroke-dasharray=\"" + MAG * 3 + " " + MAG * 3 + "\"");
         lastGoodp = null;
       }
       lp = p;
       if (!p.isTruncated()) lastGoodp = p;
       if (showPoints) svg.circle(scaleX(p.getX()), scaleY(p.getY()), 3, stroke, 0.4f, null);
     }
   }
 }
 private static void drawPositions(
     SvgFile svg, UserData user, String stroke, float strokeWidth, boolean showPoints) {
   Position lp = null;
   Position lastGoodp = null;
   for (Position p : user.getPositions()) {
     if (lp != null && !lp.isTruncated() && !p.isTruncated()) {
       svg.line(
           scaleX(lp.getX()),
           scaleY(lp.getY()),
           scaleX(p.getX()),
           scaleY(p.getY()),
           stroke,
           strokeWidth);
     } else if (lastGoodp != null && !p.isTruncated()) {
       svg.line(
           scaleX(lastGoodp.getX()),
           scaleY(lastGoodp.getY()),
           scaleX(p.getX()),
           scaleY(p.getY()),
           stroke,
           strokeWidth,
           "stroke-dasharray=\"" + MAG * 3 + " " + MAG * 3 + "\"");
       lastGoodp = null;
     }
     lp = p;
     if (!p.isTruncated()) lastGoodp = p;
     if (showPoints) svg.circle(scaleX(p.getX()), scaleY(p.getY()), 3, stroke, 0.4f, null);
   }
 }