Airbnb 如何实现地理搜索?

How does Airbnb implement geo searching?

我正在研究 Airbnb 的工作原理并且对地理搜索很感兴趣。例如,我不明白 Air​​bnb 如何通过 New Zealand 找到他们的广告?

如果要查看查询字符串参数:

page:1
location:New Zealand
ss_id:3sdsi3ff

只有位置字符串 New Zealand 会发送到服务器,但不会发送 lng、lat 等坐标。

但在响应中我们得到以下信息:

center_lat: -40.900557
center_lng: 174.885971,
geo: {accuracy: 1, district: null, city: null, state: null, country: "New Zealand", country_code: "NZ",…}
accuracy: 1
city: null
colloquial_area: null
country: "New Zealand"
country_code: "NZ"
district: null
market: "Other (International)"
natural_feature: null
result_type: "country"
state: null
state_short: null
success?: true

我们看到我们得到了center_lat: -40.900557 center_lng: 174.885971坐标,国家:"New Zealand",country_code:"NZ"

那么 Airbnb 如何根据 GET 请求中从客户端传递的 "New Zealand" 字符串检测到这些数据?

他们要么有一台服务器存储世界上每一个城市(名称作为关键字)和位置......(好吧......人们可以从维基百科获得所有这些信息)

或者他们一定使用了一些服务,例如 google 地图地理编码服务:

https://developers.google.com/maps/documentation/javascript/geocoding

打开街道地图提供解决方案 API 就像 google 地理编码一样。