Почему геометрия сохраняется в БД как bytea? - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь научиться использовать данные ГИС в приложении с весенней загрузкой.Я следовал нескольким учебникам и примерам в Интернете, и я могу сохранить некоторые данные в пространственной БД, но у меня возникла проблема.

Если я отправляю данные из Почтальона, информация GEOM сохраняется как байта вполе с именем point, как я определил для сущности, выглядит следующим образом:

"\254\355\000\005sr\000!com.vividsolutions.jts.geom.PointD\007{\255\026\034\273*\002\000\001L\000\013coordinatest\0000Lcom/vividsolutions/jts/geom/CoordinateSequence;xr\000$com.vividsolutions.jts.geom.Geometryy\236\244e"\205J>\002\000\004I\000\004SRIDL\000\ (...)" 

, когда данные, отправляемые почтальоном, POINT (3.8 5.7).

Я использую этот метод для сохраненияинформация:

@Override public void registerPoint(String userId, String point) {

    startsOperation();

    Points pointEntity =new Points();

    pointEntity.setPointName("test");
    pointEntity.setUserId("12345");

    try {
        pointEntity.setPoint((Point) wktToGeometry(point));
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    session.save(pointEntity);

    tx.commit();

    session.close();
    }

private Geometry wktToGeometry(String wellKnownText) 
          throws ParseException {

            return new WKTReader().read(wellKnownText);
        }

}

А это сущность:

import com.vividsolutions.jts.geom.Point;

@Entity
@Table(name = "Points")
public class Points implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    private Long id;

    private String userId;

    private String pointName;

    private Point point;

/*GETTERS AND SETTERS*/

Я не использовал @Column для автоматического создания поля таблицы

У меня нет проблем с хранением информации о geom, подобной этой, но у меня есть проблема, когда я получаю очки другим методом, так как я хотел бы отправить координаты во внешний интерфейс.

Есть ликакое-нибудь решение для этого?

...