Ориентация пространственных координат многоугольника Hibernate

Я использую пространственный спящий режим (geolatte с JTS) с базой данных оракула. Я создаю объект Geometry с многоугольником, поэтому он сохраняется как объект SDO_GEOMETRY в базе данных. В настоящее время все полигоны хранятся против часовой стрелки с SDO_ETYPE в SDO_ELEM_INFO_ARRAY, установленным на 1003 (внешнее кольцо полигонов). Если я переверну многоугольник и сохраним его, ориентация против часовой стрелки не изменится.

Таким образом, похоже, что спящий режим обеспечивает выполнение этого требования, или после создания объекта SDO_GEOMETRY устанавливается ориентация.

Я хотел бы контролировать, в какой ориентации полигоны сохраняются в базе данных. Это режим гибернации? Нужно ли хранить полигоны как отверстия (внутренние кольца), когда я создаю их вместо оболочек?

Спасибо!


person user6888562    schedule 15.12.2017    source источник


Ответы (2)


Oracle требует особого порядка как часть спецификации SDO. Примечание. Я являюсь первоначальным автором кода GeoTools, который был очищен для использования здесь, в JTS.

Для получения дополнительной информации см. примеры jacadoc или документы SDO.

person Jody Garnett    schedule 15.12.2017
comment
Большое спасибо за ваш ответ! Я занимаюсь поиском и читаю документы в течение двух дней, не могли бы вы дать ссылку о том, как указать ориентацию? - person user6888562; 15.12.2017

В документации Oracle Spatial указана ориентация кольца Polygon в Разделе 2.2.4:

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

person dr_jts    schedule 17.12.2017
comment
Спасибо! Да, я уже прочитал этот документ. Полигоны сохраняются как SDO_ETYPE 1003, что означает, что они вынуждены вращаться против часовой стрелки. Кажется, вопрос в том, как изменить SDO_ETYPE на 2003 с помощью Java/Hibernate, чтобы полигоны сохранялись по часовой стрелке? В настоящее время я работаю над установкой оболочки в значение null и отверстием в многоугольнике (Polygon (оболочка LinearRing, отверстия LinearRing [], фабрика GeometryFactory)) в надежде, что это приведет к SDO_ETYPE 2003 года. - person user6888562; 18.12.2017