代码之家  ›  专栏  ›  技术社区  ›  David542

几何/地理点是否意味着方向?

  •  1
  • David542  · 技术社区  · 3 年前

    是线吗 LINESTRING(1 1, 2 2) 与…一样 LINESTRING(2 2, 1 1) ?我认为答案是否定的,如果隐含了一些方向性——例如,从洛杉矶到纽约的航线与从纽约到洛杉矶的航线不同,尽管(在这个例子中)它在两个方向上都沿着相同的路径。或者做一个 GEO 数据类型不涉及任何方向,只要两个地理/几何图形具有所有相同的点(无论顺序如何),它们就被认为是相同的?

    2 回复  |  直到 3 年前
        1
  •  2
  •   Mustafa Özçetin    3 年前

    平等实际上取决于您的观点或使用场景。 如果你认为字符串 LINESTRING(1 1, 2 2) LINESTRING(2 2, 1 1) 纯粹的特征 那么你可以说它们是相等的,因为它们由完全相同的点组成。但是如果 方向或网络分析 那么,他们肯定不会像你所指出的那样平等。假设您在PostGIS中存储了一个Road表。你可以使用它 显示 道路或可能 计算 导航应用程序中的最短路径。在后一种情况下,方向很重要;甚至一条路是单向还是双向也是很重要的。这种区别很像 undirected directed 图表。

    评估平等的另一个观点是查看PostGIS docs 。它描述了 LineString 作为:

    行字符串是位置之间的路径。它的形式是 两个或多个点的有序序列。

    从这个角度来看,因为这是一个 已订购 你可以说的一系列观点 管柱(1 1,2 2) 管柱(2 2,1 1) 同样。他们有不同的 ST_StartPoint() ST_EndPoint() 例如,值。

        2
  •  2
  •   Michael Entin    3 年前

    答案取决于一个人对“相同”的定义。

    对于 ST_Equals 它们是一样的 ST_相等 只关心拓扑等价和DE-9IM模型( https://en.wikipedia.org/wiki/DE-9IM )。

    但你仍然可以查看他们的详细信息,例如打电话 ST_StartPoint 在两个对象上,并且为这些几何图形返回不同的值。