Daha çox

Postgisdə yaradılan bir tampon ilə bir çoxbucağın kəsişməsini əldə edin

Postgisdə yaradılan bir tampon ilə bir çoxbucağın kəsişməsini əldə edin


İki masam var. Birində EPSG: 4326 -da, digərində EPSG -də də çoxbucaqlılar var: 4326. Bu ikisini geoserver -də qat olaraq yüklədim və onları açıq təbəqələrdən istifadə edərək göstərdim (şəkildə göstərildiyi kimi)

İndi postgisdə hər bir yaşıl nöqtənin (200 metr tamponlanmış) çoxbucaqlılarla kəsişmə sahəsini tapdığım bir sorğu yazmaq istəyirəm.

Bu sorğunu yazdım:

C.adı, d.adı FROM nöqtələrindən c, çoxbucaqları d HARADA ST_INTERSECTS SEÇİN (d.geom, ST_BUFFER (c.geom, 500))

Amma heç bir nəticə əldə etmirəm. Tampon ölçüsünü 5000000 -ə qədər artırsam, nəticələr əldə edərəm.

  1. Beləliklə, sual buferdən istifadə etmədən bunu etmək üçün daha yaxşı bir yolun olub -olmamasıdır.
  2. Yoxladığım bir proyeksiya problemi varsa.

EDIT

@HimBromBeere -nin tövsiyələrinə əməl etdim və həndəsələrimi EPSG: 2100 -ə çevirdim (metrlərlə). Problem heç bir mənası olmayan 0 nəticəsi olaraq aldığım bu sorğunu icra edərkən qalır.

SEÇ ST_AREA (ST_INTERSECTION (ST_Buffer (ST_Transform (ST_SetSRID (c.geom, 4326), 2100), 200), ST_Transform (ST_SetSRID (d.geom, 4326), 2100))) kateqoriyalardan data c, dimoi d


ST_Bufferməkan istinadınızı nəzərə alacaq. Coğrafi koordinatlarınız olduğu üçün tampon ölçüsünüzü də dərəcə ilə təmin etməlisiniz.

Alternativ olaraq, əvvəlcə burada təklif olunduğu kimi həndəsələrinizi metrik bir məkan refrensiyasına çevirə bilərsiniz:

SEÇ ST_Buffer (ST_Transform (ST_SetSRID (ST_MakePoint (-71.063526, 42.35785), 4326), myNewReferenceSystem), 200); // 200 m tampon

Videoya baxın: Ameliyat Sonrası Tampon ve Bandajım Ne Zaman Çıkar?