Mai mult

Postgis calculează distanța dintre punct și poligon / cerc

Postgis calculează distanța dintre punct și poligon / cerc


Prin cerința de bază este de a găsi gardurile din apropiere la un anumit punct (utilizatorlat long alt) în termen de N metri.

Am o listă de poligon / cerc în DB cu 900913 srid

ST_Force_3D (st_geomfromtext ('polygon ((' || p_geometrytext || '))', 900913))

Undep_geometrytexteste o serie delung lat altcu separatorul ",".

Am un punct ca acesta79.268309 17.057432 0.0Am încercat mai jos codul

selectați ST_Distance (ST_SetSRID ((selectați „Fence” din „GeoFence” unde „FenceId” = 13), 4326), ST_GeomFromText ('POINT (79.268309 17.057432 0.0)', 4326), adevărat)

Am folosit 4326 ca srid, deoarece 900913 dă erori.

M-am dus să arunc acest document, dar nu am putut să-l folosesc corect. Sunt nou în postgis, mă poate sugera cineva, cum o pot face? sau redirecționează-mă către locul unde pot obține o soluție.

EDITAȚI | ×: Acesta este poligonul meu (selectați st_asewkt ((selectați „Fence” din „GeoFence” unde „FenceId” = 13)))

"SRID = 900913; POLIGON ((78.421783447257 17.420097759577 0,78.528900146476 17.423373494038 0,78.528213500968 17.333597145753 0,78.421783447257 17.332941682216 0,78.422477)


Dacă doriți să obțineți distanța dintre două seturi de puncte lat / lon, 4326, atunci puteți utiliza ST_Distance_Sphere sau pentru mai multă precizie, ST_Distance_Spheroid. Dacă tabelul gardului dvs. este în 900913, utilizați ST_Transform pentru a converti, astfel încât ambele seturi de puncte să fie într-un SRID comun.

SELECT ST_Distance_Sphere ((selectați ST_Transform ("Fence", 4326) DIN "GeoFence" WHERE "FenceId" = 13)), ST_GeomFromText ('POINT (79.268309 17.057432 0.0)', 4326))

Priveste filmarea: ЗАСЕДАНИЕ ПО КАРБОНОВЫМ ПОЛИГОНАМ