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