أكثر

ST_Intersects لا تعمل مع ST_Expand من نقطة

ST_Intersects لا تعمل مع ST_Expand من نقطة


أود أن أفعل شيئًا بسيطًا حقيقيًا: لدي صندوق محيط B1 (ST_MakeEnvelope) وأريد أن أرى ما إذا كان مربع مساحته 100 متر حول موقع خط عرض / طول يتقاطع مع المربع المحيط الآخر (B1).

لقد حاولت القيام بذلك:

SELECT ST_Intersects (ST_MakeEnvelope (2.3400235176086426 ، 48.87195488537595 ، 2.3521900177001953 ، 48.86635145037327 ، 4326) :: علم الهندسة ، ST_Expand (ST_SetSRID (ST_MakePoint (1.888275146484375) ؛

يجب أن يعود هذا خطأ ، لأن موضع النقطة إذا كان أكثر من 100 كيلومتر من المربع المحيط بي 1 ...

لكنني دائمًا أحصل على:

st_intersects --------------- ر

أين خطأي؟


بعد إجابة @ zimmi فعلت:

SELECT ST_Intersects (ST_Transform (ST_MakeEnvelope (2.3400235176086426 ، 48.87195488537595 ، 2.3521900177001953 ، 48.86635145037327 ، 4326) :: علم الهندسة ، 3857) ، ST_Expand (ST_Transform (ST_SetSRID (ST_SetSRID (ST_ME))

هذا يعمل بشكل مثالي.


جميع حسابات EPSG: 4326 الهندسية تتم بدرجات بدلاً من كيلومترات. استخدم ST_Transform لإعادة إسقاط بياناتك إلى CRS الذي يستخدم وحدات مترية.


شاهد الفيديو: line intersect polygon