پایگاه داده مکانی اَبری
زیرساخت مکانی پروژه‌های شما، بدون دردسر راه‌اندازی سرور

چطور فاصله بین دو نقطه را به متر محاسبه کنم؟

راهنمای گام‌به‌گام آخرین بازبینی: ۱۴۰۵/۰۷/۲۹

پاسخ کوتاه

دو راه: ST_Distance روی geography (دقیق، متر) یا تبدیل هر دو به سیستم مختصات متری مانند UTM (32639 برای بخش بزرگی از ایران) و سپس ST_Distance.

روش ۱: geography

SELECT ST_Distance(
  ST_SetSRID(ST_MakePoint(51.389, 35.689), 4326)::geography,
  ST_SetSRID(ST_MakePoint(59.606, 36.297), 4326)::geography) / 1000 AS km;

نتیجه فاصله روی کره (WGS84) به متر است؛ ساده و دقیق برای هر نقطه.

روش ۲: سیستم مختصات متری

SELECT ST_Distance(ST_Transform(a.geom, 32639), ST_Transform(b.geom, 32639))
FROM a, b;

برای فاصله‌های کوچک در یک منطقه مناسب است. کدام SRID؟

Warning

ST_Distance(geom_4326, geom_4326) به درجه برمی‌گرداند و معنای متری ندارد (چرا؟).

آیا این مقاله به شما کمک کرد؟

چه چیزی کم بود؟ (اختیاری)

هنوز جواب نگرفتید؟ به پشتیبانی بگویید.