Changeset 16674 in josm


Ignore:
Timestamp:
2020-06-17T22:16:45+02:00 (3 weeks ago)
Author:
simon04
Message:

fix #19406 - InspectPrimitiveDialog: display length and area

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDataText.java

    r15777 r16674  
    1010import java.util.stream.Stream;
    1111
     12import org.openstreetmap.josm.data.SystemOfMeasurement;
    1213import org.openstreetmap.josm.data.conflict.Conflict;
    1314import org.openstreetmap.josm.data.coor.ILatLon;
     
    2526import org.openstreetmap.josm.data.osm.OsmData;
    2627import org.openstreetmap.josm.data.osm.OsmPrimitive;
     28import org.openstreetmap.josm.data.osm.Relation;
     29import org.openstreetmap.josm.data.osm.Way;
    2730import org.openstreetmap.josm.data.projection.ProjectionRegistry;
    2831import org.openstreetmap.josm.data.projection.proj.TransverseMercator;
     
    175178            add(tr("Centroid: "), toStringCSV(false,
    176179                    ProjectionRegistry.getProjection().eastNorth2latlon(Geometry.getCentroid(((IWay<?>) o).getNodes()))));
     180            if (o instanceof Way) {
     181                double dist = ((Way) o).getLength();
     182                String distText = SystemOfMeasurement.getSystemOfMeasurement().getDistText(dist);
     183                add(tr("Length: {0}", distText));
     184            }
     185            if (o instanceof Way && ((Way) o).concernsArea() && ((Way) o).isClosed()) {
     186                double area = Geometry.closedWayArea((Way) o);
     187                String areaText = SystemOfMeasurement.getSystemOfMeasurement().getAreaText(area);
     188                add(tr("Area: {0}", areaText));
     189            }
    177190            addWayNodes((IWay<?>) o);
    178191        } else if (o instanceof IRelation) {
    179192            addBbox(o);
     193            if (o instanceof Relation && ((Relation) o).concernsArea()) {
     194                double area = Geometry.multipolygonArea(((Relation) o));
     195                String areaText = SystemOfMeasurement.getSystemOfMeasurement().getAreaText(area);
     196                add(tr("Area: {0}", areaText));
     197            }
    180198            addRelationMembers((IRelation<?>) o);
    181199        }
Note: See TracChangeset for help on using the changeset viewer.