Ticket #5416: 5416.patch
| File 5416.patch, 1.6 KB (added by , 13 years ago) |
|---|
-
src/org/openstreetmap/josm/plugins/measurement/MeasurementDialog.java
142 142 } else if (p instanceof Way) { 143 143 Way w = (Way)p; 144 144 Node lastN = null; 145 double wayArea = 0.0; 145 146 for (Node n: w.getNodes()) { 146 147 if (lastN != null && lastN.getCoor() != null && n.getCoor() != null) { 147 148 length += lastN.getCoor().greatCircleDistance(n.getCoor()); 148 149 //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())) 150 151 - (MeasurementLayer.calcY(n.getCoor()) * MeasurementLayer.calcX(lastN.getCoor())); 151 152 segAngle = MeasurementLayer.angleBetween(lastN.getCoor(), n.getCoor()); 152 153 } 153 154 lastN = n; 154 155 } 155 156 if (lastN != null && lastN == w.getNodes().iterator().next()) 156 area = Math.abs(area / 2);157 wayArea = Math.abs(wayArea / 2); 157 158 else 158 area = 0; 159 wayArea = 0; 160 area += wayArea; 159 161 } 160 162 } 161 163
