无法在neo4j空间中找到几何

时间:2016-05-22 16:34:34

标签: neo4j gis neo4j-spatial

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

enter image description here

enter image description here

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

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);

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

enter image description here

1 个答案:

答案 0 :(得分:0)

我调查了这些测试用例,并在https://github.com/neo4j-contrib/spatial/blob/master/src/test/java/org/neo4j/gis/spatial/TestSpatial.java#L269找到了一个使用与您的代码非常相似的代码的测试。该测试可以在SHP和OSM数据模型上运行,并且可以找到结果。您代码中的一个区别是您使用的是图层索引中的bbox,因此我更改了测试以进行此操作,但它仍然有效。我认为,如果没有您的数据示例,我们将无济于事,看看您出了什么问题。