2009-02-25 4 views
0

Ich muss den Schwerpunkt eines Polygons in Oracle Spatial finden, die innerhalb des Polygons selbst existiert. Ich kann die sdo_geom.sdo_centroid -Methode nicht verwenden, da dies einen Punkt außerhalb der Form zurückgibt, wenn die Form einem Hufeisen ähnelt.Gibt es in Oracle Spatial (SDO) eine Möglichkeit, den Schwerpunkt eines Polygons zu erhalten, das in der Polygonfläche enthalten ist?

Ich fand sdo_geom.sdo_pointonsurface Methode, aber es gibt einen Punkt zurück, nur am Rande des Polygons. Während dies mathematisch funktioniert, ist es in unserer Umgebung nicht sicher, da alle Polygone eine Grenze mit anderen Polygonen haben und manchmal gibt es eine leichte Überlappung in den Daten. Diese Überlappung kann den berechneten Punkt nicht enthalten.

Gibt es einen anderen Ansatz, um diesen Punkt zu finden, ohne benutzerdefinierten Code zu schreiben? Ich bin nicht dagegen, benutzerdefinierten Code dafür zu schreiben, aber ich möchte etwas vorgebautes verwenden, wenn es bereits existiert.

Danke!

Antwort

1

Simon Greener hat ein Paket für einen "Para-Zentroid": codesys.geom.sdo_centroid.

Sie können es herunterladen, aber ich weiß nicht, ob es irgendeine Art von Lizenzierung an die Quelle angeschlossen ist.

Hier sind die Links:

+0

Dank! Das habe ich gesucht. Ich war über die Seite gestolpert, konnte aber nicht herausfinden, wo er den Quellcode tatsächlich abgelegt hatte. Danke noch einmal! –