Skip to content

Commit 7762305

Browse files
committed
degrees centroid
1 parent 9581203 commit 7762305

3 files changed

Lines changed: 27 additions & 11 deletions

File tree

src/main/java/mil/nga/sf/Geometry.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,19 @@ public Point getCentroid() {
164164
return GeometryUtils.getCentroid(this);
165165
}
166166

167+
/**
168+
* Get the geographic centroid point of a 2 dimensional representation of
169+
* the degree unit Geometry. Only the x and y coordinate of the resulting
170+
* point are calculated and populated. The resulting {@link Point#getZ()}
171+
* and {@link Point#getM()} methods will always return null.
172+
*
173+
* @return centroid point
174+
* @since 2.0.5
175+
*/
176+
public Point getDegreesCentroid() {
177+
return GeometryUtils.getDegreesCentroid(this);
178+
}
179+
167180
/**
168181
* Copy the geometry
169182
*

src/main/java/mil/nga/sf/util/GeometryUtils.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,10 @@ public static Point getCentroid(Geometry geometry) {
155155
}
156156

157157
/**
158-
* Get the centroid point of a Geometry in degrees
158+
* Get the geographic centroid point of a 2 dimensional representation of
159+
* the degree unit Geometry. Only the x and y coordinate of the resulting
160+
* point are calculated and populated. The resulting {@link Point#getZ()}
161+
* and {@link Point#getM()} methods will always return null.
159162
*
160163
* @param geometry
161164
* geometry object

src/test/java/mil/nga/sf/GeometryUtilsTest.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -627,12 +627,12 @@ public void testCentroid() {
627627

628628
Point point = new Point(15, 35);
629629

630-
Point centroid = GeometryUtils.getCentroid(point);
630+
Point centroid = point.getCentroid();
631631

632632
TestCase.assertEquals(15.0, centroid.getX());
633633
TestCase.assertEquals(35.0, centroid.getY());
634634

635-
Point degreesCentroid = GeometryUtils.getDegreesCentroid(point);
635+
Point degreesCentroid = point.getDegreesCentroid();
636636

637637
TestCase.assertEquals(15.0, degreesCentroid.getX());
638638
TestCase.assertEquals(35.0, degreesCentroid.getY());
@@ -641,49 +641,49 @@ public void testCentroid() {
641641
lineString.addPoint(new Point(0, 5));
642642
lineString.addPoint(point);
643643

644-
centroid = GeometryUtils.getCentroid(lineString);
644+
centroid = lineString.getCentroid();
645645

646646
TestCase.assertEquals(7.5, centroid.getX());
647647
TestCase.assertEquals(20.0, centroid.getY());
648648

649-
degreesCentroid = GeometryUtils.getDegreesCentroid(lineString);
649+
degreesCentroid = lineString.getDegreesCentroid();
650650

651651
TestCase.assertEquals(6.764392425440724, degreesCentroid.getX());
652652
TestCase.assertEquals(20.157209770845522, degreesCentroid.getY());
653653

654654
lineString.addPoint(new Point(2, 65));
655655

656-
centroid = GeometryUtils.getCentroid(lineString);
656+
centroid = lineString.getCentroid();
657657

658658
TestCase.assertEquals(7.993617921179541, centroid.getX());
659659
TestCase.assertEquals(34.808537635386266, centroid.getY());
660660

661-
degreesCentroid = GeometryUtils.getDegreesCentroid(lineString);
661+
degreesCentroid = lineString.getDegreesCentroid();
662662

663663
TestCase.assertEquals(5.85897989020252, degreesCentroid.getX());
664664
TestCase.assertEquals(35.20025371999032, degreesCentroid.getY());
665665

666666
Polygon polygon = new Polygon(lineString);
667667

668-
centroid = GeometryUtils.getCentroid(polygon);
668+
centroid = polygon.getCentroid();
669669

670670
TestCase.assertEquals(5.666666666666667, centroid.getX());
671671
TestCase.assertEquals(35.0, centroid.getY());
672672

673-
degreesCentroid = GeometryUtils.getDegreesCentroid(polygon);
673+
degreesCentroid = polygon.getDegreesCentroid();
674674

675675
TestCase.assertEquals(5.85897989020252, degreesCentroid.getX());
676676
TestCase.assertEquals(35.20025371999032, degreesCentroid.getY());
677677

678678
lineString.addPoint(new Point(-20, 40));
679679
lineString.addPoint(new Point(0, 5));
680680

681-
centroid = GeometryUtils.getCentroid(polygon);
681+
centroid = polygon.getCentroid();
682682

683683
TestCase.assertEquals(-1.3554502369668247, centroid.getX());
684684
TestCase.assertEquals(36.00315955766193, centroid.getY());
685685

686-
degreesCentroid = GeometryUtils.getDegreesCentroid(polygon);
686+
degreesCentroid = polygon.getDegreesCentroid();
687687

688688
TestCase.assertEquals(-0.6891904581641471, degreesCentroid.getX());
689689
TestCase.assertEquals(37.02524099014426, degreesCentroid.getY());

0 commit comments

Comments
 (0)