Hirdetés

Új hozzászólás Aktív témák

  • kw3v865

    senior tag

    Sziasztok!

    A következő SQL-es kérdésem lenne. A feladat az, hogy adott egy úthálózat (ways tábla), illetve egy megye tábla (polygon), és az utakat fel kell darabolni a megyehatároknál.

    Az alábbi lekérdezéssel ezt meg is tudtam oldani, viszont amire egyelőre nem találtam az, hogy az új táblában, ami már a szétdarabolt utakat tartalmazza, egy új oszlopban tartalmaznia kellene a régi ID-kat.

    create table ways_split as (
    WITH
    lines_in_polygons AS(
    SELECT ST_INTERSECTION(ways.geom,polygon.geom) as inter
    FROM
    ways, polygon
    ),
    diff AS (
    SELECT ST_Difference(ways.geom,ST_UNION(p.geom)) geom FROM
    ways
    JOIN polygon AS p ON
    ST_INTERSECTS(ways.geom,p.geom)
    GROUP BY ways.geom)

    SELECT ST_GeometryN(geom,n)
    FROM diff AS d
    CROSS JOIN
    (SELECT
    generate_series(1,ST_NumGeometries(geom)) as n FROM diff) n
    UNION
    SELECT inter
    FROM lines_in_polygons);

    Tehát most arra kellene rájönnöm, miként tudom egy új oszlopban hozzáadni a vonalak eredeti ID-ját. Értelemszerűen a megyehatároknál elvágott új szakaszok ugyanazt az eredeti ID-t fogják kapni.

    Van valami ötletetek miként lehetne ezt megvalósítani?

Új hozzászólás Aktív témák