سورت کردن براساس نزدیکترین مکان در SQL

گاهی اوقات تو پروژه های برنامه نویسی لازم میشه که بخواهیم براساس نزدیکترین مکان سورت کنیم داده هامون رو.

مثلا نمایش نزدیکترین رستوران های اطراف کاربرامون.

راهکاری هایی برای این قضیه وجود داره مثلا یکیش Data Type های جدید mysql هست که برای کار با location هست میشه از اونا استفاده کرد، یه راه دیگه هم استفاده از توابع محاسباتی برای پیدا کردن نزدیک ترین مکان هست.

ما روش دوم رو در اینجا توضیح میدیم :

فرض کنید ما یه جدول به اسم location داریم که دوتا فیلد latitude و longitude داره.

order by کدمون رو به این صورت مینویسیم :

با به توان ۲ رسوندن اختلاف هر موقعیت جغرافیای و حاصل جمع این دو کار ما انجام میشه،(البته روش های دیگه هم هست که با sin و cos انجام میشه و… )

$lng و $lat موقیعت مکانی فعلی کاربر هست که برساس نزدیکترین مکان به این دو را، Sort میکنه.

نمونه کد لاراول هم به این صورت میشه :

موفق باشید.


پست های مرتبط