Daha çox

Həndəsə (postgis) mövzusunda iki masanı birləşdirin


Həndəsə ilə eyni küçə şəbəkəsinə sahib iki masam var (lakin eyni id deyil). Etmək istədiyim şey qoşulmaqdır hər ikisi tam üst-üstə düşən bütün həndəsələr üçün birinə aid bütün cədvəllər.

Təəssüf ki, sorğu mənə yalnız xırda xətləri verir. Sol qoşulma ilə işləyirəm, lakin digər birləşmələr də işləməyəcəkdir.

MÖVCÜDÜDÜDÜZÜZDƏ CƏDVƏLİ DAMLA; SEÇİLMƏSİNDƏ CƏDVƏL testini yaradın * STOEQALLAR ÜZRƏ cədvəl1DƏN SƏHİF QOŞULUN cədvəl2 (cədvəl1.the: geom, table2.the_geom);

Bunun üçün bir cavab varmı?


MarHoff'un şərhilə razıyam. Düşünürəm ki, aşağıdakı şərt iş görür:

'cədvəl1dəki həndəsə tamamilə cədvəl2-dəki həndəsə ətrafında kiçik bir buferin içərisindədir və cədvəl2-də həndəsə cədvəldə həndəsə ətrafında kiçik bir buferin içindədir'.

SEÇ * SEÇİN * cədvəl1 INNER JOIN cədvəl2 st_within (table1.the_geom, st_buffer (table2.the_geom, 0.1)) AND st_within (table2.the_geom, st_buffer (table1.the_geom, 0.1));

Burada 0.1, koordinat istinad sisteminizdən asılı olaraq metr / fut / dərəcə / hər hansı bir tampon radiusudur. CRS dərəcələriniz varsa (GPS koordinatları), ehtimal ki, 0,1-dən kiçik bir dəyər istifadə etməlisiniz.

Cədvəlləriniz çox böyükdürsə, bu həll hesablama vaxtı ala bilər. Digər bir həll, hər iki həndəsəni müqayisə etmədən əvvəl sadələşdirmək üçün st_snaptogrid istifadə etmək olar.

Ümid edirəm kömək edər!


Videoya baxın: Geometry Creation and Manipulation Using PostGIS. PostGIS Baby Steps (Oktyabr 2021).