贝壳网的「画圈找房」

2023-06-02 10:51:58 +08:00
 venomD

想请教一下各位大佬,贝壳的这个「画圈找房」的功能是咋实现的?

主要的问题是他是如何做到很快的响应的呢?房源信息与地图位置是怎么存放的?

希望了解的大佬不吝赐教

4776 次点击
所在节点    程序员
23 条回复
dem0ns
2023-06-02 10:57:18 +08:00
resblockIds 按 block 来查
chiron688
2023-06-02 10:58:00 +08:00
gis 开发,挺简单的,存个房源的 xy 或者经纬度坐标,然后识别路径的 xy 信息,在这范围内的就是了
ww940521
2023-06-02 10:59:07 +08:00
我们公司的 GIS 也有这个功能,就是用的地图的 SDK 实现的,很简单。
hhjswf
2023-06-02 10:59:21 +08:00
redis 有个 geo 的数据类型
j3llypunk777
2023-06-02 11:02:33 +08:00
es polygon 查询,每个房源都有自己的经纬度数据,页面上的点聚合效果是地图自带的功能,我做过几乎一样的需求
danieladu
2023-06-02 11:07:23 +08:00
盲猜就是 GEOHASH
macttt
2023-06-02 11:45:40 +08:00
开水团团有一篇基于 R-Tree 服务和 ElasticSearch 的 Terms 命令来实现的类似功能,他么针对这一步骤还对 ES 的 terms 进行了定制化增强: https://tech.meituan.com/2022/11/17/elasicsearch-optimization-practice-based-on-run-length-encoding.html
shawndev
2023-06-02 12:06:17 +08:00
keyword: geo-polygon
sadfQED2
2023-06-02 13:47:35 +08:00
es 传 polygon ,如果精度要求差一点可以 geohash
WhereverYouGo
2023-06-02 14:22:43 +08:00
@j3llypunk777 #5 同 5 楼
githmb
2023-06-02 15:01:48 +08:00
这就不得不提 PostgreSQL 的牛逼之处了
qiayue
2023-06-02 15:15:20 +08:00
说个题外话,这个功能很好用,尤其是已经确定了学校的学区,只能在学区内换房时,特别好用
ql562482472
2023-06-02 15:15:52 +08:00
postgis 几个函数的事情 很容易
Worldispow
2023-06-02 15:20:42 +08:00
@githmb 数据分析做的多了就会发现,pg 真是吊着 mysql 锤
leechen
2023-06-02 15:34:21 +08:00
@githmb 这是懂的,PostgreSQL 内置了地理信息的数据格式和函数
hldnpqzzy
2023-06-02 16:37:04 +08:00
geohash 吧
qigge2014
2023-06-02 17:30:00 +08:00
mysql ST_Distance_Sphere 函数也可以
Ericcccccccc
2023-06-02 17:32:58 +08:00
搜 geohash, 然后数据放进 redis 就行.
txy3000
2023-06-02 17:46:21 +08:00
kd 树 qlog(n)
cp19890714
2023-06-02 19:39:21 +08:00
postgre 可以处理 gis 相关数据,内置一堆 gis 函数和算法。比如:给出两点,算出最短路径,它都可以。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/945161

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX