У меня есть база данных Postgis с геометрическим столбцом с системой srid 900913. Если есть hibernate-пространственное отображение столбца в com.vividsolutions.jts.geom.Geometry
.Я также использую QueryDSL для создания запросов.
Я знаю, что получаю запрос со строкой WKT в srid-системе 900913. Я хочу запросить объекты, пересекающие строку WKT.
WKTReader reader = new WKTReader(
new GeometryFactory(new PrecisionModel(), 900913));
// only the part which creates the clause
qSample.geom.intersects(reader.read(wktString))
Я знаю, что получаю ошибку, потому что есть смешанные srid-системы от postgres.
o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: XX000
o.h.engine.jdbc.spi.SqlExceptionHelper : ERROR: Operation on mixed SRID geometries
Я обнаружил, что если я преобразую wktString
"вручную" в epsg 4326, а затем создаю запроскак
qSample.geom.transform(4326).intersects(reader.read(wktStringIn4326))
это работает.Но я не хочу постоянно конвертировать каждую запись в моей базе данных ...