Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

लारवेल में समन्वय दूरी की गणना करें

सबसे पहले, static को हटाना न भूलें फ़ंक्शन कॉल से कीवर्ड, Laravel जादुई स्थिर-दिखने . से संबंधित है Profile::distance कॉल करें।

एक ही समस्या को हल करने के लिए नीचे 2 अलग-अलग विकल्प दिए गए हैं, किसी भी स्थिति में आप \App\Profile::distance($latitude, $longitude, 50) पर कॉल करेंगे। आपके नियंत्रक से।

विकल्प 1

आप उपश्रेणियों से निपटने के बजाय स्मृति में गणना कर सकते हैं।

public function scopeDistance($query, $lat, $long, $distance) {
    return Profile::all()->filter(function ($profile) use ($lat, $long, $distance) {
        $actual = 3959 * acos(
            cos(deg2rad($lat)) * cos(deg2rad($profile->latitude))
            * cos(deg2rad($profile->longitude) - deg2rad($long))
            + sin(deg2rad($lat)) * sin(deg2rad($profile->latitude))
        );
        return $distance < $actual;
    });
}

विकल्प 2

आप एक SQL सबक्वेरी निष्पादित कर सकते हैं, कॉल को get() with के साथ समाप्त करना सुनिश्चित करें :

public function scopeDistance($query, $lat, $long, $distance) {
    return $query->having('distance', '<', $distance)
             ->select(DB::raw("*,
                     (3959 * ACOS(COS(RADIANS($lat))
                           * COS(RADIANS(latitude))
                           * COS(RADIANS($long) - RADIANS(longitude))
                           + SIN(RADIANS($lat))
                           * SIN(RADIANS(latitude)))) AS distance")
             )->orderBy('distance', 'asc')
              ->get();
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. लूप mysql mysql क्वेरी के बाहर php में परिणाम देता है

  2. पायथन एप्लिकेशन को ऑनलाइन डेटाबेस से कैसे कनेक्ट करें

  3. MySQL के साथ एक वेबसाइट बनाएं

  4. Magento के उत्पाद SQL क्वेरी का उपयोग करके डेटाबेस से आयात करते हैं

  5. डुप्लिकेट कुंजी अद्यतन एकाधिक कॉलम पर MySQL सम्मिलित पंक्ति