مقدمه: تحلیل مکانی
دادههای جغرافیایی شامل تمامی انواع اطلاعات مکان-محور هستند که در انواع اشکال و طیفهای مختلف، اطلاعات و ویژگیها را در ارتباط مستقیم با تقسیمبندی جغرافیایی مشخص خود بیان میکنند؛ پردازش و تحلیل این دادهها که برداشت الگوها یا روابط را در این دادههای مکان-محور ساده و قابل درک کند؛ تحلیل مکانی خوانده میشود. توابع تحلیل مکانی مانند محاسبهی مساحت، فاصله و یا مرکز ثقل یک چندضلعی کاربردهای بسیاری دارند از جمله یافتن نزدیکترین کافیشاپ، محاسبهی زمان سفر، یا برای تحلیل مسائل دسترسی مانند دسترسی به صندوقهای رأی.
Turf.js
Turf.js یک کتابخانهی جاوا اسکریپت متنباز است که برای تحلیلهای مکانی در جاوا اسکریپت و تایپ اسکریپت مورد استفاده قرار میگیرد. این ابزار شامل عملگرهای رایج مکانی، توابع کمکی برای ساخت دادهها در فرمت GeoJSON، دستهبندی دادهها و همچنین برخی از ابزارهای آماری است. Turf.js میتواند بهعنوان یک پلاگین در کنار ابزارهایی از مپ که با زبان جاوا اسکریپت هستند مورد استفاده قرار گیرد. این ابزارها شامل Web SDK، React، Vue.js، Angular و React-Native میشوند.
افزودن Turf.js
بهوسیلهی CDN: برای اضافه کردن Turf.js کافیست، در قسمت Head صفحه HTML کد زیر را اضافه کنید.
<script src='https://unpkg.com/@turf/turf@6/turf.min.js'></script>
بهوسیلهی NPM:
npm install @turf/turf
مثالهایی از استفاده Turf.js بههمراه ابزارهای مپ
در ادامه مثالهایی از استفاده از Turf.js در کنار ابزارهای مپ قرار داده شده است. برای مثالهای بیشتر میتوانید به سایت اصلی آن به آدرس https://turfjs.org مراجعه کنید.
- centroid
برای محاسبهی centroid یک چندضلعی استفاده میشود (WebSDK).
برای آشنایی با نحوهی استفاده از کنسول stackblitz اینجا را ببینید. 🕹
- centerOfMass
در این مثال با استفاده از turf.js مساحت و مرکز ثقل چندضلعی دلخواهی محاسبه شده است (WebSDK).
- محاسبهی بافر (buffer) دور نقطه
ابزار buffer همانطور که از معنای آن مشخص است، برای ساخت حریم عوارض استفاده میشود (WebSDK).
⚠️ توجه داشته باشید که turf از بافر ژئودزیک (geodesic buffer) استفاده میکنه.
- محاسبهی بافر (buffer) دور خط
ابزار Buffer همانطور که از معنای آن مشخص است، برای ساخت حریم عوارض استفاده میشود (WebSDK).
- Simplify
ابزار simplfy همانطور که از معنای آن مشخص است، برای سادهسازی و ازبینبردن پیچیدگیهای یک چندضلعی استفاده میشود (React).
- Convex
برای پیدا کردن Convex Hull یک چندضلعی استفاده میشود (React).
- intersect
برای ترسیم intersect دو چندضلعی استفاده میشود (React).
- difference
برای ترسیم difference دو چندضلعی استفاده میشود (React).
- Mask کردن نقشه
در این مثال نقشه مپ به کمک turf.js برای استان اصفهان ماسک شده است.
این مورد رو میتونید در مثالهای کامپوننت ریاکت در 🔗 این آدرس مشاهده کنید.