Я пытаюсь научиться использовать данные ГИС в приложении с весенней загрузкой.Я следовал нескольким учебникам и примерам в Интернете, и я могу сохранить некоторые данные в пространственной БД, но у меня возникла проблема.
Если я отправляю данные из Почтальона, информация 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, подобной этой, но у меня есть проблема, когда я получаю очки другим методом, так как я хотел бы отправить координаты во внешний интерфейс.
Есть ликакое-нибудь решение для этого?