Ticket #5416: 5416.patch

File 5416.patch, 1.6 KB (added by Preferred, 8 years ago)
  • src/org/openstreetmap/josm/plugins/measurement/MeasurementDialog.java

     
    142142            } else if (p instanceof Way) {
    143143                Way w = (Way)p;
    144144                Node lastN = null;
     145                double wayArea = 0.0;
    145146                for (Node n: w.getNodes()) {
    146147                    if (lastN != null && lastN.getCoor() != null && n.getCoor() != null) {
    147148                        length += lastN.getCoor().greatCircleDistance(n.getCoor());
    148149                        //http://local.wasp.uwa.edu.au/~pbourke/geometry/polyarea/
    149                         area += (MeasurementLayer.calcX(n.getCoor()) * MeasurementLayer.calcY(lastN.getCoor()))
     150                        wayArea += (MeasurementLayer.calcX(n.getCoor()) * MeasurementLayer.calcY(lastN.getCoor()))
    150151                        - (MeasurementLayer.calcY(n.getCoor()) * MeasurementLayer.calcX(lastN.getCoor()));
    151152                        segAngle = MeasurementLayer.angleBetween(lastN.getCoor(), n.getCoor());
    152153                    }
    153154                    lastN = n;
    154155                }
    155156                if (lastN != null && lastN == w.getNodes().iterator().next())
    156                     area = Math.abs(area / 2);
     157                    wayArea = Math.abs(wayArea / 2);
    157158                else
    158                     area = 0;
     159                    wayArea = 0;
     160                area += wayArea;
    159161            }
    160162        }
    161163