Vyhledání míst v okolí pomocí MySQL
Zde je příkaz SQL, který najde 20 nejbližších míst, která jsou v okruhu 25 mil k souřadnici 37, -122. Vypočítá vzdálenost na základě zeměpisné šířky/délky daného řádku a cílové zeměpisné šířky/délky a poté se zeptá pouze na řádky, kde je hodnota vzdálenosti menší než 25, seřadí celý dotaz podle vzdálenosti a omezí jej na 20 výsledků. Chcete-li hledat podle kilometrů místo mílí, nahraďte 3959 6371.
Struktura tabulky:
id,name,address,lat,lng
POZNÁMKA - Zde zeměpisná šířka =37 a délka =-122. Takže stačí předat svůj vlastní.
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) *
cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) *
sin( radians( lat ) ) ) ) AS distance FROM your_table_name HAVING
distance < 25 ORDER BY distance LIMIT 0 , 20;
Podrobnosti naleznete zde .