Promień 40 kilometrów z wykorzystaniem szerokości i długości geograficznej [duplikat]

Możliwy duplikat:
Promień wielu punktów szerokości / długości geograficznej
obliczenia odległości w zapytaniach mysql
wybierz odległość do 20 kilometrów na podstawie szerokości / długości geograficznej

Mam tabelę MyISAM, w której przechowywane są dane. Dane obejmują szerokość i długość geograficzną dla Map Google. To, co staram się osiągnąć, to wybrać wszystkie obiekty w promieniu 40 kilometrów szerokości próbki i Długość geograficzna.

Dzięki!
Author: Community, 2012-01-13

1 answers

Używam tego zapytania, aby uzyskać wszystkie punkty w $radius wokół $lat/$lng:

SELECT
    *,
    ( 6371 * acos( cos( radians({$lat}) ) * cos( radians( `lat` ) ) * cos( radians( `lng` ) - radians({$lng}) ) + sin( radians({$lat}) ) * sin( radians( `lat` ) ) ) ) AS distance
FROM `positions`
HAVING distance <= {$radius}
ORDER BY distance ASC
6371 to promień Ziemi w km. A ja tego nie wymyśliłem: http://code.google.com/intl/en/apis/maps/articles/phpsqlsearch.html https://developers.google.com/maps/articles/phpsqlsearch_v3#findnearsql (edit: url changed)
 39
Author: DerVO,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-23 14:43:30