4

我正在使用 neo4j 空间 0.15 和 neo4j 2.3.3。我已经导入了一个 shapefile,并看到几何图形现在存在于我的数据库中。

在此处输入图像描述

在此处输入图像描述

现在,我想使用边界框找到所有几何图形。

SpatialDatabaseService spatialService = new SpatialDatabaseService(database);
Layer layer = spatialService.getLayer("layer_roads");
SpatialIndexReader spatialIndex = layer.getIndex();

LayerIndexReader rtreeIndex = layer.getIndex();
Envelope bbox = rtreeIndex.getBoundingBox();
SearchIntersect searchQuery = new SearchIntersect(layer, layer.getGeometryFactory().toGeometry(Utilities.fromNeo4jToJts(bbox)));
SearchRecords results = rtreeIndex.search(searchQuery);

当我浏览结果变量时,我看到没有几何返回。为什么它没有出现,即使我看到我的数据库中存在几何图形。

在此处输入图像描述

4

1 回答 1

1

我查看了测试用例,发现使用的代码与您的代码非常相似,位于https://github.com/neo4j-contrib/spatial/blob/master/src/test/java/org/neo4j/gis/空间/TestSpatial.java#L269。该测试在 SHP 和 OSM 数据模型上运行并且确实找到了结果。您的代码中的一个区别是您使用的是图层索引中的 bbox,所以我更改了测试来做到这一点,它仍然有效。我认为如果没有您的数据示例,我们将无法帮助您了解您出了什么问题。

于 2019-04-24T15:01:21.180 回答