Daha çox

St_split () - i həndəsələri konkret qayda ilə qaytarmağa məcbur edin


PostGIS istifadə edirəmst_split ()bir çoxbucaqlı həndəsəni linestring ilə bölmək. Sonra istifadə edirəmst_dump ()bölünmüş həndəsənin hər birini qaytarmaq üçün yaxşı işləyir. Ancaq məsələ st_dump () ı müəyyən bir qayda ilə geri dönməyə məcbur etmək istəyirəm. Məsələn, xətt şaquli olarsa, əvvəl sol həndəsi, sonra aşağıda göstərildiyi kimi sağa dönün.

Linestring üfüqi olsa da, əvvəlcə yuxarı həndəsəni, sonra hündürlüyü geri qaytarın.

Hal-hazırda həndəsəni təsadüfi olaraq qaytarır.

Aşağıda bölünmüş həndəsələrimi qaytaran hissə var

line kimi SELECT ((ST_Dump (ST_Split (circle, line))). Geom) (SELECT ST_GeomFromText FROM WKT As (LINESTRING (73.3864598921383 33.8985381624948,73.3962348946526 33.8646669883339), 4326), ST_GeomFromText (POLYGON ((73.3733940124512 33.8850949267837,73.4058380126953 33.8936448555238 , 73.41313362121582 33.87818310806669,73.377857208252 33.8708431412792,73.3735656738281 33.8772567393002,73.3733940124512 33.8850949267837)) ', 4326) Dairə kimi) Foo kimi;

Bunu etmək üçün bir neçə yolunuz var:

  1. Həndəsənin yuxarı sol küncündə nöqtəni çəkin və bu nöqtədən məsafəyə görə sifariş verin

  2. Hər iki həndəsənin yuxarı sol təpəsinin yuxarı koordinatları ilə sifariş

    (SELECT ((ST_Dump (ST_Split (dairə, sətir))). Geom) As wkt FROM (SELECT ST_GeomFromText ('LINESTRING (73.3864598921383 33.8985381624948,73.3962348946526 33.8646669883339), 73912F3 (4333)', 4326) foo kimi dairə kimi 33.8850949267837,73.4058380126953 33.8936448555238,73.41313362121582 33.87818310806669,73.377857208252 33.8708431412792,73.3735656738281 33.8772567393002,73.3733940124512 33,8850949267837)), 4326))) st_xmin (aaa.wkt), st_ymax (aaa.wkt ilə aaa sifariş kimi)
  3. Koordinatların X ilə, sonra hər iki həndəsənin koordinatların y ilə sifariş edin

    (SELECT ((ST_Dump (ST_Split (dairə, sətir))). Geom) As wkt FROM (SELECT ST_GeomFromText ('LINESTRING (73.3864598921383 33.8985381624948,73.3962348946526 33.8646669883339), 73912F3 (4333)', 4326) foo kimi dairə kimi 33.8850949267837,73.4058380126953 33.8936448555238,73.41313362121582 33.87818310806669,73.377857208252 33.8708431412792,73.3735656738281 33.8772567393002,73.3733940124512 33,8850949267837)), 4326))) st_xmin (aaa.wkt), st_ymax (aaa.wkt ilə aaa sifariş kimi)