【问题标题】:Neo4j spatial php exampleNeo4j 空间 php 示例
【发布时间】:2012-11-15 09:33:36
【问题描述】:

我正在寻找一个使用 php 中的 neo4j 空间特征的非常基本的示例,最好使用这个库 neo4jphp

我想存储一个带有纬度和经度的地点列表

我如何存储这些信息? lat 和 long 是否可以与其他场地信息一起存储在一个节点中?

你如何在某个给定点周围找到场地?

谢谢

编辑:空间特征是neo4j的空间插件

【问题讨论】:

  • 与您的问题无关,但我只是好奇您打算将 Neo4j 用于您的场地和 lng/lat 什么?它会给你带来什么好处?
  • 例如你可以在地图上显示它们
  • 是的,我的意思是,你为什么要在neo4j中实现这个。?这就是我感兴趣的地方。
  • 如果您知道如何做到这一点,请提交功能请求,并附上一些 neo4jphp 的工作代码示例。
  • Layke:因为我还想使用其他 neo4j 功能。不知道任何其他具有空间支持的图形数据库也有一个 php 客户端库。

标签: php geospatial neo4j


【解决方案1】:

我建议为每个场地创建一个节点,然后为此类节点创建属性纬度和经度。那么,您还必须索引这些属性。

要解决给定点周围的场地问题,也许创建一些国家超级节点会有所帮助 - 例如欧洲,中欧,捷克共和国,布拉格。但这需要此类国家名称的数据库。我宁愿创建虚拟国家部分: 将世界地球想象为 2d 地图。而不是在其上制作一个网格以获得 NxM 正方形的矩阵 - 最好是通过使用某种全局模式来划分它,例如纬度和经度的每个 +1 是一个虚拟国家部分。

在获得这个虚拟国家部分之后,不仅仅是将所有场地节点连接到它的超级节点,这些节点在这个虚拟国家部分中具有 lat's+long's 属性。 比,在搜索您的半径内的所有节点时,您必须首先找到国家部分(或跨境时的更多部分),然后手动检查该部分内的所有节点是否适合您的半径。

至少你不需要检查所有节点,只需要检查一个子集。我不知道这种可以处理半径问题的索引解决方案,只有手动检查是唯一的方法。

您需要使用 neo4jphp 的示例吗?如果是这样,我会找时间制作一个。

编辑:我发现一些解决方案已经存在,例如https://github.com/neo4j/spatial,所以我的回答可能不合适,您应该等待领域专家的回答。

【讨论】:

  • 也许我没有明确写出来,但我想使用空间插件。所以我希望有一些像 mongo 这样的解决方案:你可以找到 near(x, y, radius) 它会给你一个属于该区域的文档列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
  • 2021-09-09
  • 1970-01-01
  • 2015-11-18
  • 2016-12-19
  • 2014-08-13
相关资源
最近更新 更多