如何在多边形内找到点?
How to find points within Polygon?
我最近在使用hibernate spatial,我有这样一个问题。我想获得多边形内的所有点。我该怎么做?
例如我的距离查询看起来很简单:
final Coordinates coordinates = Point.fromDegrees(searchDistanceParameters.getLatitude(), searchDistanceParameters.getLongitude());
final Query fromCoordinates = SpatialQueryBuilderFromCoordinates.buildDistanceQuery(coordinates, searchDistanceParameters.getDistance(), "location");
final FullTextSession fullTextSession = Search.getFullTextSession(session);
final FullTextQuery textQuery = fullTextSession.createFullTextQuery(fromCoordinates, GeoPointModel.class);
我这样创建一个多边形:
GeometryFactory geometryFactory = new GeometryFactory();
Polygon polygon = geometryFactory.createPolygon(coordinates);
但是我可以用什么来获取这个多边形内的点呢?
Hibernate Search 5 的空间支持仅涵盖距离查询。不支持多边形内的匹配点。
Hibernate Search 6 确实提供了 a "within polygon" predicate,但 Hibernate Search 6 中的 API 与 Search 5 中的 API 不同。
如果您对此没有意见,可以先使用最新的 Beta:http://hibernate.org/search/releases/6.0/ . You might want to have a look at the getting started guide for Hibernate Search 6,以便在迁移之前了解新的 API。
如果您需要继续使用 Hibernate Search 5,则必须使用 lucene-spatial
:按照 lucene-spatial
的预期实现索引点的桥接,并直接使用 lucene-spatial 生成 lucene-spatial 查询API。
我最近在使用hibernate spatial,我有这样一个问题。我想获得多边形内的所有点。我该怎么做?
例如我的距离查询看起来很简单:
final Coordinates coordinates = Point.fromDegrees(searchDistanceParameters.getLatitude(), searchDistanceParameters.getLongitude());
final Query fromCoordinates = SpatialQueryBuilderFromCoordinates.buildDistanceQuery(coordinates, searchDistanceParameters.getDistance(), "location");
final FullTextSession fullTextSession = Search.getFullTextSession(session);
final FullTextQuery textQuery = fullTextSession.createFullTextQuery(fromCoordinates, GeoPointModel.class);
我这样创建一个多边形:
GeometryFactory geometryFactory = new GeometryFactory();
Polygon polygon = geometryFactory.createPolygon(coordinates);
但是我可以用什么来获取这个多边形内的点呢?
Hibernate Search 5 的空间支持仅涵盖距离查询。不支持多边形内的匹配点。
Hibernate Search 6 确实提供了 a "within polygon" predicate,但 Hibernate Search 6 中的 API 与 Search 5 中的 API 不同。 如果您对此没有意见,可以先使用最新的 Beta:http://hibernate.org/search/releases/6.0/ . You might want to have a look at the getting started guide for Hibernate Search 6,以便在迁移之前了解新的 API。
如果您需要继续使用 Hibernate Search 5,则必须使用 lucene-spatial
:按照 lucene-spatial
的预期实现索引点的桥接,并直接使用 lucene-spatial 生成 lucene-spatial 查询API。