Tri des résultats sur une table mysql le long de la longitude et latitude, pas un rayon circulaire

StackOverflow https://stackoverflow.com/questions/4209051

  •  25-09-2019
  •  | 
  •  

Question

Salut à tous ... J'ai été chargé d'un projet de recherche mondial. Ils veulent rechercher une base de données d'images, toutes avec latitude / longitude références étagés par image dans un DB mysql.

Cependant, leurs critères de recherche est un peu spécifique.

Une structure de table simplifiée est: id INT primaire auto inc imagePath varchar 255 long DECIMAL 12,7 lat DECIMAL 12,7

Je dois fournir l'instruction SQL avec un début de position long / lat. Ils veulent alors recevoir 34 images, en direction du sud de leur première longue référence .. une fois qu'ils arrivent à -90 (le fond de la terre) à la pop plus de 1 degrés vers la droite / Est et recherche jusqu'au nord et à 90 répéter jusqu'à ce que 34 images sont trouvées.

Qu'est-ce qui me confondant est comment calculer le moins au plus des changements .. faire en sorte que la boucle de nous et le long de long »référence les terres.

Quelqu'un at-il fait cela avant ..? J'aimerais le faire en une seule requête ... (Je l'ai vu comment on peut aller chercher des résultats basés sur un rayon de cercle, mais mon client .. em .. bénirai ne veut pas le faire)

Ok, à Google !!

Pensées ...

Tris ...

Était-ce utile?

La solution

Les entrées sont the_lat $ et the_long $

SELECT * 
FROM table
WHERE long > $the_long
OR ( long = $the_long AND lat >= $the_lat)
ORDER BY long ASC, lat ASC
LIMIT 34

est, il est une recherche unidirectionnelle -. Il ne sera pas enrouler autour des positions longues <$ the_long

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top