Daha çox

Postgis həndəsə və digər məlumatları saxlamaq üçün sorğu əlavə edin


Postgis funksiyalarından istifadə edirəmst_dumpst_splitxəttə əsaslanan bir çoxbucağı bölmək. İndi ayrıldıqdan sonra; çıxış həndəsəsi verilənlər bazası cədvəlində də saxlanılır. Budur sorğu:

aoo (geom) içərisinə daxil edin SELECT ST_AsTEXT ((ST_Dump (ST_Split (dairə, xətt))). geom) As wkt FROM (SELECT ST_GeomFromText ('LINESTRING (73.33393335342407 33.82005181729661,73.3368515968926, 436, As, 436, As, 336, As, 436) aoo'dan dairə, burada gid = 71)) foo kimi;

Ancaq məsələ budur ki, bu həndəsələrlə digər məlumatları da saxlamaq istəyirəm. Kimi

aoo-ya daxil edin (geom, ad)

amma bunu etməyin yolu nədir.


Əvvəlcə bir həndəsi geri istədiyiniz zaman ST_AsText istifadə etməyin - sadəcə həndəsəyə qayıdacaq, beləliklə dövrlərin boşa çıxması.

Ad sahənizin haradan gəldiyindən əmin deyiləm, əlavə etmək istədiyiniz üçün dairə qeydinizdən gəldiyini düşünəcəyəm. Hiylə sizin foo alt seçiminizdə olduğuna diqqət yetirin, əvvəl geri qaytarmaq istədiyiniz bütün sahələri sadalamalısınız.

INSERT INTO aoo (geom, name) SELECT (ST_Dump (ST_Split (dairə, sətir))). Geom, foo.name FROM ST_GeomFromText ('LINESTRING (73.33393335342407 33.82005181729661,73.33685159683 43866 As6 dairə, aoo-dan ad, burada gid = 71) foo ON ST_Intersects kimi (sətir, foo.circle);

Bunu bacarmalısan:

AO (geom, out_name) SEÇİN ST_AsTEXT ((ST_Dump (ST_Split (dairə, xətt))). Geom) wkt olaraq, in_name FROM (SELECT ST_GeomFromText ('LINESTRING (73.33393335342407 33.82005181796366366363366366366366363, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386), 386, 386, 386, 386), 386). (aoo-dan geom As dairəsini seçin gid = 71)) foo kimi;

haradaout_nametəyinat cədvəlindəki ad sahəsinin sahə adıdır &in_namemənbə cədvəlindəki ad sahəsinin sahə adıdır


Başqaları sualımı cavablandırmağa yaxşı çalışdılar. Ancaq bunlar mənim tələblərimə uyğun deyil. Bu vəziyyətdə nə etdimsə işi idarə etməkdirServer sonu.PHP dizisini istifadə edərək, atılan həndəsələri əldə edin:

while ($ row = pg_fetch_assoc ($ rs)) {$ result [] = $ row ['wkt']; }

Hər birinin yuxarı hissəsini istifadə edərəkatıldıhəndəsə bir indeksdə saxlanılır$ nəticəmassiv. Beləliklə, istifadə edə bilərikdaxil edinvə yayeniləməhəndəsələrdən başqa məlumatları saxlamaq üçün sorğu. Salam!


Videoya baxın: Практики, особенности и нюансы при работе с Postgres в Go. Артемий Рябинков Авито (Oktyabr 2021).