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

PHP MySQL को GPS से त्रिज्या उपयोगकर्ता के स्थान में स्थान मिलते हैं

दूरी की गणना करना कम्प्यूटेशनल रूप से महंगा है, जैसा कि अन्य ने कहा है। विशाल डेटासेट लौटाना भी एक बहुत अच्छा विचार नहीं है - विशेष रूप से यह देखते हुए कि PHP प्रदर्शन में उतना अच्छा नहीं है।

मैं एक अनुमानी का उपयोग करूंगा, जैसे कि साधारण जोड़ और घटाव के साथ दूरी का अनुमान लगाना।

बस उस सीमा के भीतर घटनाओं के साथ डीबी खोजें (प्रभावी रूप से एक वर्ग के बजाय एक वर्ग), और फिर आप PHP वाले लोगों पर काम कर सकते हैं।

संपादित करें :यहाँ एक विकल्प है; एक अनुमान जो कम्प्यूटेशनल रूप से कम खर्चीला है:

मील में अनुमानित दूरी:

sqrt(x * x + y * y)

where x = 69.1 * (lat2 - lat1) 
and y = 53.0 * (lon2 - lon1) 

आप कोसाइन गणित फ़ंक्शन को जोड़कर इस अनुमानित दूरी की गणना की सटीकता में सुधार कर सकते हैं:

मीलों में बेहतर अनुमानित दूरी:

sqrt(x * x + y * y)

where x = 69.1 * (lat2 - lat1) 
and y = 69.1 * (lon2 - lon1) * cos(lat1/57.3) 

स्रोत:http://www.meridianworlddata.com/Distance-Calculation.asp

2 संपादित करें :मैंने बेतरतीब ढंग से जेनरेट किए गए डेटासेट के साथ परीक्षणों का एक समूह चलाया।

  • 3 एल्गोरिदम के लिए सटीकता में अंतर न्यूनतम है, खासकर कम दूरी पर
  • सबसे धीमा एल्गोरिथम (ट्रिग फ़ंक्शन के पूरे समूह के साथ) अन्य दो की तुलना में 4x धीमा है।

निश्चित रूप से इसके लायक नहीं है। बस एक अनुमान के साथ जाएं।

कोड यहाँ है:http://pastebin.org/424186



  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 लाइसेंसिंग और GPL

  2. MySQL पर SSL/TLS का उपयोग करने के लिए स्प्रिंग बूट एप्लिकेशन को कैसे कॉन्फ़िगर करें?

  3. mysql.user की कॉलम संख्या गलत है। अपेक्षित 42, 44 मिला। तालिका शायद दूषित है

  4. क्या डोमेन के बजाय स्थानीयहोस्ट पर MySQL को कनेक्ट/उपयोग करना तेज़ है (भले ही डोमेन उसी कंप्यूटर पर हल हो जाए)?

  5. तृतीय पक्ष प्रणाली में स्वचालित लॉगिन के लिए उपयोगकर्ता डेटा को एन्क्रिप्ट करना