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