رفتن به نوشته‌ها

دسته: MongoDB (مونگو دی‌بی)

ذخیره‌ی محیط جغرافیایی برای بررسی نقاط

ما در جلسه ی قبل به این موضوع پرداختیم که آیا نقاط ذخیره شده در پایگاه داده در یک محیط جغرافیایی خاص هستند یا خیر. در این جلسه می خواهیم برعکس این موضوع را بررسی کنیم؛ یعنی محیط های جغرافیایی خاصی را در پایگاه داده ذخیره کنیم و ببینیم آیا یک نقطه ی خاص در آن محیط ها وجود دارد یا خیر. در بسیاری از برنامه های واقعی به همین شکل از map ها استفاده می شود. مثلا کاربر مختصات خود را به شما می گوید و شما وجود او در یک منطقه یا شهر را بررسی می کنید. برای این کار باید ابتدا چند ضلعی (Polygon) خود را درون پایگاه داده ذخیره کنیم. اگر یادتان رفته است، نقاط آن به شکل زیر بودند: const p1 = [-122.4547, 37.77473] const p2 = [-122.45303, 37.76641] const p3 = [-122.51026, 37.76411] const p4 = [-122.51088, 37.77131] ما می توانیم با یک دستور ساده این ناحیه را درون پایگاه داده ذخیره کنیم: db.areas.insertOne({name: “Golden Gate Park”, area: {type: “Polygon”, coordinates: [[p1, p2, p3, p4, p1]]}}) این کوئری، محیط پارک Golden Gate را درون یک کالکشن جدید به نام areas ذخیره می کند. همچنین همانطور که در جلسات قبل فیلد location یک نام دلخواه بود، فیلد area نیز کاملا به سلیقه ی شما بستگی دارد و می توانید هر مقداری را به جای آن قرار دهید. در جلسه ی قبل در مورد ساختار polygon ها صحبت کردیم بنابراین اگر یادتان رفته است به آن جلسه مراجعه کنید. برای مطمئن شدن از اینکه متغیر های p1 تا p4 به درستی کار کرده اند باید یک بار داده ها را بخوانیم: