sql >> Database >  >> RDS >> Mysql

MySQL selecteer coördinaten binnen bereik

U kunt de zogenaamde Haversine-formule gebruiken .

$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";

Waar $lat en $lng zijn de coördinaten van je punt, en lat/lng zijn je tabelkolommen. Het bovenstaande geeft een overzicht van de locaties binnen een bereik van 5 nm. Vervang 3959 door 6371 om te wijzigen in kilometers.

Deze link kan handig zijn:https://developers.google.com/maps/articles/phpsqlsearch_v3

Edit:ik had niet gezien dat je Java noemde. Dit voorbeeld is in PHP, maar de vraag is nog steeds wat je nodig hebt.



  1. MySQL LAST_INSERT_ID() gebruikt met meerdere records INSERT-instructie

  2. Wat is eigenlijk een hoofdversie?

  3. Hoe RTRIM() werkt in MariaDB

  4. Bestel varchar string als numeriek