Changeset 29577 in osm


Ignore:
Timestamp:
2013-05-10T04:34:00+02:00 (11 years ago)
Author:
donvip
Message:

[josm_measurement] fix #josm5416 - area measurement with several selected closed ways (patch by Preferred)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementDialog.java

    r29545 r29577  
    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());
     
    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        }
Note: See TracChangeset for help on using the changeset viewer.