
是这样, 开发个 app, 里面有这么个功能.
查看附近的人.
那么问题来了, 有没有什么现成的轮子可以实现这个功能.
没有的话, 就只能每次把自己的定位信息上传到服务器, 然后存数据库.
每次客户端请求寻找附近的人, 拿当前用户的坐标, 计算一个范围, 然后去数据库里捞数据.
时间着急不想造轮子了.
1 jokester 2015 年 6 月 16 日 google service有, 不知国内能不能用 |
3 holmesabc 2015 年 6 月 16 日 好像有百度还是高德的sdk |
4 laoertongzhi 2015 年 6 月 16 日 这种事情不应该找地图厂商么? |
5 randyzhao OP |
9 ETiV 2015 年 6 月 16 日 自己撸过的飘过... 存数据库前用 GeoHash 换算一下经纬度. 然后查附近的人就靠这个 geohash string[0:n] 去 LIKE 'xxx%', 当然经纬度也跟着一起存进去. 找完附近的人, 再用经纬度去算两边的距离. 再对距离排序. 当然也可以不排, QQ的附近的人就没有按距离排序. 为了不泄漏其他用户的所在位置, 下发数据的时候不要把别人的经纬度带下去就行了. 看你服务端用啥语言, Node.js 俩小时(?)搞定. |
10 randyzhao OP @ETiV 以后要考虑扩展性的话 比如: 后期引入百度高德之类的 SDK 把附近的人的数据在地图上展示 除开记录 GeoHash 之外, 应该还要记录经纬度? 另外, APP 用户需要给自己的定位起名字 比如: 我在"人民大会堂的女厕所" 等于我又要维护一套地点名的表咯... =.= |
11 ETiV 2015 年 6 月 17 日 经纬度要存的,要不没法算距离. 单纯的"附近的人", 不要显示在地图上. 只有"好友"之间或者对方允许才应该显示. 用户给自己的所处位置起名, 第三方SDK也不支持呀( 或者有支持的么? ). 肯定要自己维护的. |
12 randyzhao OP |
13 bigfei 2015 年 6 月 17 日 |
15 ETiV 2015 年 6 月 17 日 对, geohash 是为了先筛选可能近的人. 你多搜搜geohash资料, 精确到8位还是9位长度的geohash字符串, 相隔7米的样子~ 手机上大多数的 SDK 只能给你经纬度, geohash 都要你自己, 放服务器上来算. |
17 Mutoo 2015 年 6 月 18 日 噗这页 http 一直打不开,挂 https 一看,原来是「轮子」 |