قم بإجراء عمليات بحث نصف قطرية سريعة وفعالة على نماذج Laravel Eloquent الخاصة بك.
يوفر Laravel Geoly طريقة ملائمة لنماذج Laravel Eloquent الخاصة بك للاستعلام في نصف قطر معين حول موضع ما. إنه سريع للغاية باستخدام المربع المحيط لخفض النتائج المحتملة وحساب المسافة على المجموعة الفرعية المتبقية فقط. يعمل Laravel Geoly على كل من MySQL وPostgreSQL.
ما عليك سوى طلب المشروع عبر الملحن:
$ composer require akuechler/laravel-geoly
تفترض Geoly خطي latitude
longitude
في نموذجك البليغ. ما عليك سوى إضافتها إلى عملية الترحيل الخاصة بك إذا لم تكن موجودة بعد.
$ table -> double ( ' latitude ' );
$ table -> double ( ' longitude ' );
إذا كنت تفضل استخدام أسماء أخرى لأعمدة قاعدة بياناتك، فحددها في النموذج الخاص بك.
const LATITUDE = ' lat ' ;
const LONGITUDE = ' lng ' ;
استخدم حزمة Geoly ضمن نموذج Eloquent الخاص بك.
class YourModel extends Model
{
use Geoly ;
...
}
للبحث عن جميع النماذج ضمن نصف قطر محدد حول موضع ما، قم بإضافة نطاق radius
إلى استعلامك.
$ query = YourModel :: radius ( $ latitude , $ longitude , $ radius );
$ query -> get ();
هذا المشروع مستوحى بشكل كبير من مقالة Laravel Geographical and Movable Type Scripts حول تحديد النقاط داخل دائرة محيطة.