Sie können die sogenannte Haversine-Formel verwenden .
$sql = "SELECT *, ( 3959 * acos( cos( radians(" . $lat . ") ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(" . $lng . ") ) + sin( radians(" . $lat . ") ) * sin( radians( lat ) ) ) ) AS distance FROM your_table HAVING distance < 5";
Wobei $lat
und $lng
sind die Koordinaten Ihres Punktes und lat/lng sind Ihre Tabellenspalten. Das Obige listet die Standorte innerhalb eines 5-sm-Bereichs auf. Ersetzen Sie 3959
von 6371
um in Kilometer umzuwandeln.
Dieser Link könnte hilfreich sein:https://developers.google.com/maps/articles/phpsqlsearch_v3
Bearbeiten:Ich habe nicht gesehen, dass Sie Java erwähnt haben. Dieses Beispiel ist in PHP, aber die Abfrage ist immer noch das, was Sie brauchen.