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

ज़िप कोड निकटता/रेंज निर्धारित करने के लिए MySQL फ़ंक्शन

यह निफ्टी lil mySQL फ़ंक्शन जो मैंने लिखा है, निश्चित रूप से आपके लिए ट्रिक करना चाहिए।

BEGIN
   DECLARE x decimal(18,15);
   DECLARE EarthRadius decimal(7,3);
   DECLARE distInSelectedUnit decimal(18, 10);

   IF originLatitude = relativeLatitude AND originLongitude = relativeLongitude THEN
          RETURN 0; -- same lat/lon points, 0 distance
   END IF;

   -- default unit of measurement will be miles
   IF measure != 'Miles' AND measure != 'Kilometers' THEN
          SET measure = 'Miles';
   END IF;

   -- lat and lon values must be within -180 and 180.
   IF originLatitude < -180 OR relativeLatitude < -180 OR originLongitude < -180 OR relativeLongitude < -180 THEN
          RETURN 0;
   END IF;

   IF originLatitude > 180 OR relativeLatitude > 180 OR originLongitude > 180 OR relativeLongitude > 180 THEN
         RETURN 0;
   END IF;

   SET x = 0.0;

   -- convert from degrees to radians
   SET originLatitude = originLatitude * PI() / 180.0,
       originLongitude = originLongitude * PI() / 180.0,
       relativeLatitude = relativeLatitude * PI() / 180.0,
       relativeLongitude = relativeLongitude * PI() / 180.0;

   -- distance formula, accurate to within 30 feet
   SET x = Sin(originLatitude) * Sin(relativeLatitude) + Cos(originLatitude) * Cos(relativeLatitude) * Cos(relativeLongitude - originLongitude);

   IF 1 = x THEN
          SET distInSelectedUnit = 0; -- same lat/long points
          -- not enough precision in MySQL to detect this earlier in the function
   END IF;

   SET EarthRadius = 3963.189;
   SET distInSelectedUnit = EarthRadius * (-1 * Atan(x / Sqrt(1 - x * x)) + PI() / 2);

   -- convert the result to kilometers if desired
   IF measure = 'Kilometers' THEN
          SET distInSelectedUnit = MilesToKilometers(distInSelectedUnit);
   END IF;

   RETURN distInSelectedUnit;
END

यह मूल अक्षांश, मूल देशांतर, सापेक्ष अक्षांश, सापेक्ष देशांतर और माप को मापदंडों के रूप में लेता है। उपाय केवल Miles हो सकता है या Kilometers

आशा है कि इससे मदद मिलेगी!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जूमला का विस्तार कैसे करें! मेरी कस्टम PHP फ़ाइल के लिए

  2. परिणाम प्राप्त करने का प्रयास करते समय PHP क्लास के साथ डीबी से कनेक्ट करें काम नहीं कर रहा है

  3. पायथन द्वारा MySQL के कार्यान्वयन AES_DECRYPT () का उपयोग कैसे करें

  4. PHP में दूरस्थ MySQL डेटाबेस को कैसे कनेक्ट करें

  5. जेट्टी 7 + MySQL कॉन्फिग [java.lang.ClassNotFoundException:org.mortbay.jetty.webapp.WebAppContext]