2017-12-15 7 views
0

Ich verwende Hibernate Spatial (geolatte mit JTS) mit einer Oracle-Datenbank. Ich erstelle ein Geometry-Objekt mit einem Polygon, sodass es als SDO_GEOMETRY-Objekt in der Datenbank beibehalten wird. Derzeit werden alle Polygone gegen den Uhrzeigersinn mit SDO_ETYPE im SDO_ELEM_INFO_ARRAY auf 1003 (äußerer Polygonring) gespeichert. Wenn ich das Polygon umkehre und behalte, ändert sich die Orientierung gegen den Uhrzeigersinn nicht.Hibernate Spatial Polygon Koordinatenausrichtung

So scheint es, dass Hibernate diese Anforderung erzwingt oder sobald das SDO_GEOMETRY-Objekt erstellt wird, wird die Ausrichtung festgelegt.

Ich möchte steuern, welche Ausrichtung die Polygone in der Datenbank gespeichert sind. Ist dies eine Winterschlaf-Einstellung? Muss ich die Polygone als Löcher (innere Ringe) speichern, wenn ich sie anstelle von Muscheln erstelle?

Danke!

Antwort

0

Oracle verlangt eine spezifische Bestellung als Teil der SDO-Spezifikation. Hinweis: Ich bin der ursprüngliche Autor des GeoTools-Codes, der für die Verwendung in JTS bereinigt wurde.

Einzelheiten finden Sie in jacadoc-Beispielen oder in den SDO-Dokumenten.

+0

Vielen Dank für Ihre Antwort so viel! Ich habe seit zwei Tagen Suchen und Lesen von Dokumenten durchgeführt. Könnten Sie bitte einen Link zur Orientierung angeben? – user6888562

0

Die Oracle Spatial-Dokumentation gibt an Polygon Ring Orientierung in Abschnitt 2.2.4:

https://docs.oracle.com/cd/A97630_01/appdev.920/a96630/sdo_objrelschema.htm#sthref198

+0

Danke! Ja, ich habe das Dokument schon gelesen. Die Polygone werden als SDO_ETYPE 1003 gespeichert, was bedeutet, dass sie gegen den Uhrzeigersinn gezwungen werden. Die Frage scheint zu sein, wie ändere ich die SDO_ETYPE zu 2003 mit Java/Hibernate, so dass die Polygone im Uhrzeigersinn gespeichert werden? Ich arbeite derzeit daran, die Shell auf Null und ein Loch auf das Polygon (Polygon (LinearRing-Shell, LinearRing [] Löcher, GeometryFactory factory)) in der Hoffnung, dass dies zu einem 2003 SDO_ETYPE führen wird. – user6888562

Verwandte Themen