Преобразование широты и долготы в JTS?

Я пытаюсь интегрировать пространственную гибернацию с JPA для поиска по географическому местоположению. Я ссылался на учебник на официальном сайте (я не связан с hibernatespatial).

В руководстве, к сожалению, не рассматривается, как создать экземпляр Point из пары широта / долгота. Я пытаюсь сделать это здесь, но я все еще не уверен, что это правильный способ преобразовать пару широта / долгота в экземпляр точки JTS:

import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.Point;
import org.geotools.geometry.jts.JTSFactoryFinder;
import org.hibernate.annotations.Type;
import javax.persistence.*;

@Entity
public class Location {

    private Double latitude;

    private Double longitude;

    @Type(type = "org.hibernatespatial.GeometryUserType")
    private Point coordinates;

    private final GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(null);

    @PrePersist
    @PreUpdate
    public void updateCoordinate() {
        if (this.latitude == null || this.longitude == null) {
            this.coordinates = null;
        } else {
            this.coordinates = geometryFactory.createPoint(new Coordinate(latitude, longitude));
        }
    }

    public Double getLatitude() {
        return latitude;
    }

    public void setLatitude(Double latitude) {
        this.latitude = latitude;
    }

    public Double getLongitude() {
        return longitude;
    }

    public void setLongitude(Double longitude) {
        this.longitude = longitude;
    }
}

19
задан Werner Altewischer 8 December 2011 в 14:38
поделиться