附近的人算法

mysql

建立mysql表, 表的格式如下.

  • userId: 用户id
  • Longitude: 经度
  • Latitude: 维度
userId Longitude Latitude
1 116.39392 39.931978
2 116.39392 116.39392
3 116.39392 116.39392

先获取自己的位置(myLongitude, myLatitude)

  • double range = 180 / Math.PI * 1 / 6372.797; //里面的 1 就代表搜索 1km 之内,单位km. 6372.797代表地球半径
  • double lngR = range / Math.cos(myLat * Math.PI / 180.0);
  • double maxLat = myLat + range;
  • double minLat = myLat - range;
  • double maxLng = myLng + lngR;
  • double minLng = myLng - lngR;

mysql 语句

SELECT * FROM checkinTable WHERE ((lat BETWEEN ? AND ?) AND (lng BETWEEN ? AND ?))
复制代码

GEO

转载于:https://juejin.im/post/5a2b69716fb9a045023b8fa5

你可能感兴趣的:(附近的人算法)