public void addLonLine(double minLat,double maxLat,double lon){
  String name="lonline" + nextShape;
  nextShape++;
  b.append("        var " + name + " = WE.polygon([\n");
  double lat;
  int steps=getStepCount(minLat,lon,maxLat,lon);
  for (lat=minLat; lat <= maxLat; lat+=(maxLat - minLat) / steps) {
    b.append("          [" + lat + ", "+ lon+ "],\n");
  }
  b.append("          [" + maxLat + ", "+ lon+ "],\n");
  lat-=(maxLat - minLat) / 36;
  for (; lat >= minLat; lat-=(maxLat - minLat) / steps) {
    b.append("          [" + lat + ", "+ lon+ "],\n");
  }
  b.append("        ], {color: \"#ff0000\", fillColor: \"#ffffff\", opacity: 1, fillOpacity: 0.0001});\n");
  b.append("        " + name + ".addTo(earth);\n");
}

public void addLonLine ( double minLat , double maxLat , double lon ) { String name = "lonline" + nextShape ; nextShape ++ ; b . append ( "        var " + name + " = WE.polygon([\n" ) ; double lat ; int steps = getStepCount ( minLat , lon , maxLat , lon ) ; for ( lat = minLat ; lat <= maxLat ; lat += ( maxLat - minLat ) / steps ) { b . append ( "          [" + lat + ", " + lon + "],\n" ) ; } b . append ( "          [" + maxLat + ", " + lon + "],\n" ) ; lat -= ( maxLat - minLat ) / 36 ; for ( ; lat >= minLat ; lat -= ( maxLat - minLat ) / steps ) { b . append ( "          [" + lat + ", " + lon + "],\n" ) ; } b . append ( "        ], {color: \"#ff0000\", fillColor: \"#ffffff\", opacity: 1, fillOpacity: 0.0001});\n" ) ; b . append ( "        " + name + ".addTo(earth);\n" ) ; }
draws a line a fixed longitude , spanning the min / max latitude
