我正在使用neo4j spatial 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);
当我浏览结果变量时,我发现没有几何返回。为什么它没有出现,即使我看到我的数据库中存在几何图形。
答案 0 :(得分:0)
我调查了这些测试用例,并在https://github.com/neo4j-contrib/spatial/blob/master/src/test/java/org/neo4j/gis/spatial/TestSpatial.java#L269找到了一个使用与您的代码非常相似的代码的测试。该测试可以在SHP和OSM数据模型上运行,并且可以找到结果。您代码中的一个区别是您使用的是图层索引中的bbox,因此我更改了测试以进行此操作,但它仍然有效。我认为,如果没有您的数据示例,我们将无济于事,看看您出了什么问题。