google / google/s2-geometry-library-java

S2polygon.getCentroid seems wrong in some case?

Aperta
#10 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Java
Stelle
587
Fork
231
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

I encountered a problem where the centroid seems wrong, i.e., the centroid is outside the polygon even when the polygon itself is a convex.

The code below plots a hexagon but the centroid seems to be way off, did I do anything wrong, thanks a lot for help?

double[] coordinates = new double[]{
47.167511,-122.1521,
47.167568,-122.151952,
47.167684,-122.151952,
47.167746,-122.1521,
47.167691,-122.152248,
47.16757,-122.152248,
47.167511,-122.1521,
};
List s2Points = new ArrayList<>();
for (int i = 0; i < coordinates.length /2; i++) {
double lat = coordinates[2 * i];
double lng = coordinates[2 * i + 1];
System.out.println(lat + "," + lng + ",");
S2LatLng s2LatLng = S2LatLng.fromDegrees(lat, lng);
s2Points.add(s2LatLng.toPoint());
}
S2Loop s2Loop = new S2Loop(s2Points);
s2Loop.normalize();
S2Polygon s2Polygon = new S2Polygon(s2Loop);
S2Point s2PolygonCentroid = s2Polygon.getCentroid();
System.out.println("Center: " + s2PolygonCentroid.toDegreesString() + " in_polygon " + s2Polygon
.contains(s2PolygonCentroid));

Output:
Center: (47.167557150782145, -122.15163675765044) in_polygon false

Kml file:


layer

<LineStyle>
<color>ff000000</color>
<width>1.2000000476837158</width>
</LineStyle>
<PolyStyle>
<color>4d000000</color>
<fill>1</fill>
<outline>1</outline>
</PolyStyle>
<BalloonStyle>
<text>&lt;![CDATA[&lt;h3&gt;$[name]&lt;/h3&gt;]]&gt;</text>
</BalloonStyle>


<LineStyle>
<color>ff000000</color>
<width>1.7999999523162842</width>
</LineStyle>
<PolyStyle>
<color>4d000000</color>
<fill>1</fill>
<outline>1</outline>
</PolyStyle>
<BalloonStyle>
<text>&lt;![CDATA[&lt;h3&gt;$[name]&lt;/h3&gt;]]&gt;</text>
</BalloonStyle>



normal
#style-polygon-normal


highlight
#style-polygon-highlight



<LineStyle>
<color>ff000000</color>
<width>1.2000000476837158</width>
</LineStyle>
<PolyStyle>
<color>4d000000</color>
<fill>1</fill>
<outline>1</outline>
</PolyStyle>
<BalloonStyle>
<text>&lt;![CDATA[&lt;h3&gt;$[name]&lt;/h3&gt;]]&gt;</text>
</BalloonStyle>


<LineStyle>
<color>ff000000</color>
<width>1.7999999523162842</width>
</LineStyle>
<PolyStyle>
<color>4d000000</color>
<fill>1</fill>
<outline>1</outline>
</PolyStyle>
<BalloonStyle>
<text>&lt;![CDATA[&lt;h3&gt;$[name]&lt;/h3&gt;]]&gt;</text>
</BalloonStyle>



normal
#style-s2cell-normal


highlight
#style-s2cell-highlight



test
test
#style-polygon




-122.15210000000002,47.167511 -122.151952,47.16756800000001 -122.15195200000002,47.16768400000001 -122.15210000000002,47.167746 -122.15224799999999,47.167691000000005 -122.15224799999999,47.16757 -122.15210000000002,47.167511




-122.15163675765044,47.167557150782145



screen shot 2017-11-01 at 11 19 06 pm

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.