在您的第一个查询中,我相信您已经颠倒了减法中的经度。余弦的球形定律是:
d = acos(sin(lat1)*sin(lat2) + cos(lat1)*cos(lat2)*cos(long2鈭抣ong1))*R
如果将lat1替换为tblcity.latitude,则必须将long1替换为tblcity.longitude。我认为您不小心在查询中替换了long2。这个更好吗?
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
我尚未调查您的第二个查询,但希望能对您有所帮助。



