TRSP - 函数族

当点也作为输入给出时:

建议

Warning

下一版本的拟议功能。

  • 它们并未正式出现在当前版本中。

  • 它们可能会正式成为下一个版本的一部分:

    • 这些函数使用 ANY-INTEGER 和 ANY-NUMERICAL

    • 名字可能不会改变。(但仍然有可能改变)

    • 签名可能不会改变。(但仍然有可能改变)

    • 功能可能不会改变。(但仍然有可能改变)

    • pgTap 测试已经完成。 但可能需要更多。

    • 文档可能需要完善。

Warning

阅读 迁移指南 了解如何从已弃用的 TRSP 功能迁移到新的签名或替换功能。

实验性的

Warning

可能服务器崩溃

  • 这些功能可能会导致服务器崩溃

Warning

实验功能

  • 它们不是当前版本的正式版本。

  • 它们可能不会正式成为下一个版本的一部分:

    • 这些函数可能不使用 ANY-INTEGER 和 ANY-NUMERICAL

    • 名称可能会改变。

    • 签名可能会改变。

    • 功能可能会改变。

    • pgTap 测试可能丢失。

    • 可能需要 c/c++编码。

    • 可能缺乏文档。

    • 文档(如果有)可能需要重写。

    • 可能需要自动生成文档示例。

    • 可能需要社区的大量反馈。

    • 可能取决于 pgRouting 的拟议功能

    • 可能依赖于 pgRouting 的已弃用函数

介绍

道路限制是一系列不能按顺序采取的路段。 有向图上隐含了一些限制,例如单向道路,其中错误的边甚至不会插入到图上。 但通常在转弯时如不许左转或不许右转,因此得名转弯限制,这儿是一些常见限制。

_images/restrictions.png

TRSP算法

内部 TRSP 算法对 dijkstra 算法执行前瞻,以查明尝试的路径是否有限制。 这允许算法在同一顶点上传递两次。

参数

参数

类型

描述

Edges SQL

TEXT

Edges SQL 按描述查询。

Restrictions SQL

TEXT

Restrictions SQL 按描述查询。

via vertices

ARRAY[ ANY-INTEGER ]

将要访问的有序顶点标识符数组。

其中:

ANY-INTEGER:

SMALLINT, INTEGER, BIGINT

限制

在道路网络上,有左转或右转限制等限制,没有掉头限制。

限制是一系列边,称为路径,并且要避免该路径。

_images/with_restrictions.png

道路网络的限制

这些限制在表格中表示如下:

/* -- r1 */
CREATE TABLE restrictions (
    id SERIAL PRIMARY KEY,
    path BIGINT[],
    cost FLOAT
);
/* -- r2 */
INSERT INTO restrictions (path, cost) VALUES
(ARRAY[4, 7], 100),
(ARRAY[8, 11], 100),
(ARRAY[7, 10], 100),
(ARRAY[3, 5, 9], 4),
(ARRAY[9, 16], 100);
/* -- r3 */
SELECT * FROM restrictions;
/* -- r4 */

Note

该表有一个标识符,这可能是管理限制所需要的,但算法不需要该信息。 如果给出,它将被忽略。

Edges SQL

类型

默认

描述

id

ANY-INTEGER

边的标识符。

source

ANY-INTEGER

边的第一个端点顶点的标识符。

target

ANY-INTEGER

边的第二个端点顶点的标识符。

cost

ANY-NUMERICAL

边(source, target)的权重

reverse_cost

ANY-NUMERICAL

-1

边(target, source)的权重

  • 当为负时:边( target, source )不存在,因此它不是图的一部分。

其中:

ANY-INTEGER:

SMALLINT, INTEGER, BIGINT

ANY-NUMERICAL:

SMALLINT, INTEGER, BIGINT, REAL, FLOAT

Restrictions SQL

类型

描述

path

ARRAY [ANY-INTEGER]

形成不允许采用的路径的边缘标识符序列。 - 空数组或 NULL 数组将被忽略。 - 具有 NULL 元素的数组将引发异常。

Cost

ANY-NUMERICAL

走禁路的成本。

其中:

ANY-INTEGER:

SMALLINT, INTEGER, BIGINT

ANY-NUMERICAL:

SMALLINT, INTEGER, BIGINT, REAL, FLOAT

另请参阅

索引和表格