Airbnb 如何实现地理搜索?
How does Airbnb implement geo searching?
我正在研究 Airbnb 的工作原理并且对地理搜索很感兴趣。例如,我不明白 Airbnb 如何通过 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 地理编码一样。
我正在研究 Airbnb 的工作原理并且对地理搜索很感兴趣。例如,我不明白 Airbnb 如何通过 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 地理编码一样。