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

چطور تعداد نقاط داخل هر چندضلعی را بشمارم (مثلاً مدرسه‌های هر محله)؟

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

پاسخ کوتاه

دو لایه را با ST_Contains یا ST_Intersects به هم join و با GROUP BY بشمارید. یا ابزار آماده «شمارش در چندضلعی» را در بخش تحلیل بزنید.

SELECT n.gid, n.name, count(s.*) AS schools
FROM neighborhoods n
LEFT JOIN schools s ON ST_Contains(n.geom, s.geom)
GROUP BY n.gid, n.name
ORDER BY schools DESC;
  • LEFT JOIN محله‌های بدون مدرسه را با عدد صفر نگه می‌دارد.
  • هر دو لایه باید هم‌SRID باشند و نمایه مکانی داشته باشند.
  • بدون SQL: ابزار «شمارش در چندضلعی» (تحلیل‌ها).

برای ذخیره نتیجه به صورت لایه: CREATE TABLE ... AS SELECT n.*, count(...) ... و GROUP BY n.gid.

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

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

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