Геообъекты

Геообъект (сокращение от geospatial object) относится к сущности, имеющей свойство геометрического типа. Дополнение поддерживает следующие гео-специфичные типы из библиотеки JTS Topology Suite (JTS):

Тип данных

Java-тип

GeoMultiPoint

org.locationtech.jts.geom.MultiPoint

GeoMultiPolygone

org.locationtech.jts.geom.MultiPolygon

GeoMultiPolyline

org.locationtech.jts.geom.MultiLineString

GeoPoint

org.locationtech.jts.geom.Point

GeoPolygon

org.locationtech.jts.geom.Polygon

GeoPolyline

org.locationtech.jts.geom.LineString

Чтобы добавить свойство, создайте новый атрибут и выберите гео-специфичный тип данных из списка.

new geo attr

Пример геообъекта Location:

@JmixEntity
@Table(name = "LOCATION")
@Entity
public class Location {
    @Column(name = "BUILDING", nullable = false)
    @NotNull
    private Point building;
}

Как видите, Location - это простая сущность, одно из свойств которой (building) имеет тип org.locationtech.jts.geom.Point.

Для привязки геообъектов к векторному слою необходимо использовать DataVectorSource.

Координаты

Класс Coordinate в JTS инкапсулирует пару координат X и Y, определяющих точку в 2D-пространстве.

Геометрические объекты - Point, LineString, Polygon - создаются с использованием заданного Coordinate.

Давайте внимательнее рассмотрим примеры ниже.

  • POINT (13.347796079315284 52.55344847222085)

    Первая координата X - это долгота. Вторая координата Y - это широта.

  • LINESTRING (13.346886063248354 52.553529790121985, 13.347394863347068 52.5532539371346, 13.347837668453902 52.55355180648286, 13.347860653822895 52.553536712270784)

    LineString определяется последовательностью координат, описывающих вершины вдоль линии. Эти координаты хранятся в определенном порядке для представления непрерывного пути линии. Первая координата X в каждой паре точек представляет долготу, а вторая - широту.