sql >> Database >  >> RDS >> Mysql

Geolocatie SQL-query vindt geen exacte locatie

In je eerste vraag, geloof ik dat je de lengtegraden in de aftrekking hebt omgekeerd. De sferische wet van cosinus is:

d = acos(sin(lat1)*sin(lat2) + cos(lat1)*cos(lat2)*cos(long2−long1))*R

Als lat1 wordt vervangen door tblcity.latitude, moet long1 worden vervangen door tblcity.longitude. Ik denk dat je per ongeluk long2 hebt vervangen in je zoekopdracht. Werkt deze beter?

SELECT tblcity.city, tblcity.latitude, tblcity.longitude, 
truncate((degrees(acos( sin(radians(tblcity.latitude)) 
* sin(radians(45.266708)) 
+ cos(radians(tblcity.latitude)) 
* cos(radians(45.266708)) 
* cos(radians(-73.616257 - tblcity.longitude) ) ) ) 
* 69.09*1.6),1) as distance 
FROM tblcity HAVING distance < 10 ORDER BY distance desc 

Ik heb je tweede vraag nog niet onderzocht, maar hopelijk helpt dat.



  1. SQL Server AlwaysOn (Beschikbaarheidsgroep) Architectuur en stapsgewijze installatie -2

  2. mysqli::query():Kan mysqli niet ophalen

  3. Hoe kan ik verbinding maken met MySQL in Python 3 op Windows?

  4. TIME_TO_SEC() Voorbeelden – MySQL