嗨,我是 neo4j 的新手,想弄清楚 atm 的一切工作原理
我导入了一个 OSM 文件,现在我正在处理一个函数,您可以输入 WGS84 格式的点和 POI,然后该函数会找到到 POI 的最短路径。
因此,为了找到离我的 WGS84 点最近的几何图形,我使用
Coordinate co = new Coordinate(12.9639158,56.070904);
List<SpatialDatabaseRecord> results2 = GeoPipeline
.startNearestNeighborLatLonSearch(layer, co, 1)
.toSpatialDatabaseRecordList();
但后来我的问题开始了,因为我真的不明白 OSM 文件是如何构建的
是否有一个函数可以让我通过名称获取我的 POI 节点?我从 OSM 文件中获取索引
SpatialDatabaseService spatialService = new SpatialDatabaseService(database);
Layer layer = spatialService.getLayer(osm);
LayerIndexReader spatialIndex = layer.getIndex();
我可以使用它按属性搜索节点吗?
为了找到点之间的最短路径,我找到了一个 dijkstra 算法
PathFinder<WeightedPath> finder = GraphAlgoFactory.dijkstra(
Traversal.expanderForTypes( ExampleTypes.MY_TYPE, Direction.BOTH ), "cost" );
WeightedPath path = finder.findSinglePath( nodeA, nodeB );
现在的问题是我的关系类型是什么???我认为它应该是 NEXT 但我如何将它包含在代码中?我必须用 NEXT 创建一个枚举吗???
如果我走对了路,有人可以给我一些反馈并给我一些帮助吗?
好的,终于找到了如何通过 id 找到节点:D 不太难,但我搜索了很长时间:D
谢谢