Mysql
 sql >> база данни >  >> RDS >> Mysql

Заявки за намиране на места в дадена шир

Ние го прилагаме повече или по-малко като кода по-долу (отказ от отговорност:изрязах това от файл и изтрих кода, който нямаше отношение към разглеждания проблем. Не стартирах това, но трябва да можете да схванете идеята.

$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. Как да се справя с единични кавички в SQL заявка в PHP?

  2. MySql Connector 6.8.2 RC, Entity Framework 6 и Code First

  3. MYSQL как да изчисли сумата на колона в рамките на период от време

  4. Разгръщане на Java приложение с база данни mysql работен плот

  5. Показване на данни от база данни с помощта на PDO