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

किसी दिए गए lat/lng . के भीतर स्थान खोजने के लिए प्रश्न

हम इसे कमोबेश नीचे दिए गए कोड की तरह लागू करते हैं (अस्वीकरण:मैंने इसे एक फ़ाइल से हटा दिया और उस कोड को हटा दिया जो हाथ में समस्या के लिए अप्रासंगिक था। मैंने इसे नहीं चलाया, लेकिन आपको यह विचार प्राप्त करने में सक्षम होना चाहिए।

$maxLat = $city->latitude + ($max_distance / 69); // 69 Miles/Degree
$minLat = $city->latitude - ($max_distance / 69);

$maxLon = $city->longitude + ($max_distance / (69.172 * cos($city->latitude * 0.0174533)));
$minLon = $city->longitude - ($max_distance / (69.172 * cos($city->latitude * 0.0174533)));

// Simplify terms to speed query
$originLatRadCos = cos($city->latitude * 0.0174533);
$originLatRadSin = sin($city->latitude * 0.0174533);
$originLonRad = $city->longitude * 0.0174533;

$city_distance_query = "
SELECT city_id, 
  3963 * acos(($originLatRadSin * sin( latitude * 0.0174533)) + 
  ($originLatRadCos * cos(latitude * 0.0174533) * cos((longitude * 0.0174533) -
  $originLonRad))) AS distanceFromOrigin
FROM cities
WHERE
 latitude < $maxLat AND latitude > $minLat AND longitude < $maxLon AND longitude > $minLon";

बाकी क्वेरी

SELECT cities.city_name, CityDistance.distanceFromOrigin,
FROM cities 
INNER JOIN ($city_distance_query) AS CityDistance ON CityDistance.city_id=cities.city_id
WHERE (distanceFromOrigin < $distance OR distanceFromOrigin IS NULL) 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मूडल के प्रदर्शन को बेंचमार्क कैसे करें

  2. MYSQL प्रत्येक श्रेणी में से यादृच्छिक का चयन करें

  3. कॉल रेल को sql में सहेजें/अपडेट करें कनवर्ट करें

  4. रेल + MySQL में प्रतिशत संग्रहित करना

  5. mysql कनेक्शन में त्रुटि दी गई कुंजी शब्दकोश में मौजूद नहीं थी