Le rayon de Recherche PHP, MYSQL et Google Maps
Im la recherche d'une base de données avec la latitude et la longitude d'un lieu. Je veux récupérer tous les emplacements à l'intérieur d'un certain rayon.
Je puis l'encoder les résultats retournés dans un JSON et récupérer les données à l'aide d'ajax, mais j'ai une erreur undefined ce sens qu'il n'existe pas de données renvoyées par la base de données.
Tout le monde peut voir où je vais mal?
Heres ma requête
$sql="SELECT *, ACOS( SIN( RADIANS( `lat` ) ) * SIN( RADIANS( $fLat ) ) + COS( RADIANS( `lat` ) )
* COS( RADIANS( $fLat )) * COS( RADIANS( `lng` ) - RADIANS( $fLon )) ) * 6380 AS `distance`
FROM `markers`
WHERE ACOS( SIN( RADIANS( `lat` ) ) * SIN( RADIANS( $fLat ) ) + COS( RADIANS( `lat` ) )
* COS( RADIANS( $fLat )) * COS( RADIANS( `lng` ) - RADIANS( $fLon )) ) * 6380 < 10
ORDER BY `distance`";
$result = mysql_query($sql);
while($r = mysql_fetch_assoc($result)) $rows[] = $r;
echo json_encode($rows);
Suggestion: Essayez la requête sans la clause where (ou une simple clause where) et voir si vous pouvez obtenir certains résultats en premier. Diviser et conquérir d'isoler la source du problème. en regardant les distances que le résultat pourrait être instructif.
Merci pour la réponse.Juste supprimé la clause where et reste encore de rien, d'autres idées?
Information: j'ai juste remplacé manuellement les coordonnées lat/long valeurs avec -32.9 et 87.01 et a obtenu quelques succès sur une base de données que j'ai qui a la latitude et la longitude des champs. La requête semble être son en SQL. Avez-vous l'écho de la requête SQL pour voir si le nouveau variables sont en faute?
Juste de mettre des valeurs dans la requête et toujours rien. Ne voulez pas le son d'un idiot, mais comment puis-je l'écho le sql"
Merci pour la réponse.Juste supprimé la clause where et reste encore de rien, d'autres idées?
SELECT * FROM markers
peut-être?Information: j'ai juste remplacé manuellement les coordonnées lat/long valeurs avec -32.9 et 87.01 et a obtenu quelques succès sur une base de données que j'ai qui a la latitude et la longitude des champs. La requête semble être son en SQL. Avez-vous l'écho de la requête SQL pour voir si le nouveau variables sont en faute?
Juste de mettre des valeurs dans la requête et toujours rien. Ne voulez pas le son d'un idiot, mais comment puis-je l'écho le sql"
OriginalL'auteur lnelson92 | 2012-05-17
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas beaucoup d'aide avec trig ou SQL, j'ai juste vu assez de Google maps questions pour vous à ce tutoriel:
https://developers.google.com/maps/articles/phpsqlsearch#findnearsql
Il y a une requête pour trouver les spots en fonction de la distance dans un rayon que vous pouvez essayer, espérons que cela fonctionne pour vous.
Utilisation 3959 (en milles) ou 6371 (en km)
Désolé, il n'était pas utile. Si vous laissez de côté le
distance < 25
partie, ou l'augmenter beaucoup, dire des milliers, je me dis qu'il doit retourner plusieurs marqueurs. Si non, pourrait-il être une incompatibilité de type dans la base de données? Les mathématiques peuvent être traitées de façon incorrecte.OriginalL'auteur Heitor Chang
Essayez celui-ci:
OriginalL'auteur Sworup Kumar Swain