有没有一种简单的方法可以将PostgreSQL中的两条重叠路由分成多个部分?

时间:2019-02-04 21:02:29

标签: sql postgresql postgis

我的PostgreSQL数据库中有两个表,每个表包含一条路由,并且它们具有一些重叠的部分。我想将它们合并在一起,并根据重叠信息和路由质量信息(在表中分别列出)将其分为几个部分。

我尝试合并表,但是我仍然没有有关细分的信息。

我的桌子看起来像这样

表1:

id latitude   longitude route_quality
1   47.948208   8.499215    1
2   47.948208   8.499313    1
3   47.948044   8.499697    2
4   47.948006   8.499986    2
5   47.94809    8.500163    1
6   47.948402   8.500023    1
7   47.949173   8.500094    1
8   47.949554   8.5001335   1
9   47.949623   8.500321    1
10  47.949207   8.502197    1
11  47.949104   8.5028515   1

表2:

latitude   longitude route_quality
1    47.948208  8.499215    1
2    47.948208  8.499313    1
3    47.948044  8.499697    2
4    47.948006  8.499986    2
5    47.94809   8.500163    1
6    47.948402  8.500023    1
7    47.949173  8.500094    1
8    47.949555  8.5001336   3
9    47.949624  8.500322    3
10   47.949207  8.502197    1
11   47.949104  8.5028515   1

如您所见,我在路线质量上存在一些重叠和差异,我希望拥有这样的东西:

结果:

latitude   longitude route_quality section
47.948208   8.499215    1            1  //overlapping
47.948208   8.499313    1            1  //overlapping
47.948044   8.499697    2            2  //overlapping but different route quality starts
47.948006   8.499986    2            2  //overlapping
47.94809    8.500163    1            3  //overlapping but different route quality starts
47.948402   8.500023    1            3  //overlapping
47.949173   8.500094    1            3  //overlapping
47.949554   8.5001335   1            4  //this is from Table1
47.949623   8.500321    1            4  //this is from Table1
47.949555   8.5001336   3            5  //this is from Table2
47.949624   8.500322    3            5  //this is from Table2
47.949207   8.502197    1            6  //overlapping starts
47.949104   8.5028515   1            6  //overlapping

我尝试过使用游标,合并,联合,但是一切都没有成功。任何建议都非常感谢。

这里是可视化部分的示例。每种颜色都是基于路径分叉和route_quality字段的不同部分。

Route sections

谢谢。

0 个答案:

没有答案