Geocoder 结果和自动完成的区别

The difference of the Geocoder result and autocomplete

我正在制作 airbnb 克隆版。在此应用程序中,我使用地理编码器 gem 和 google 自动完成。

在首页,有一个搜索表单。在那种形式下,我使用了自动完成和地理编码器。

当用户 select 自动完成字段时,我从自动完成中获取纬度和经度。

当用户没有 select 自动完成建议时,他们会从 Geocoder.coordinates 获取经纬度数据。

问题是当用户在自动完成中选择 "Mariana bay sands singapore" 时,它 return 是纬度和经度参数。

但是用户在搜索表单中输入 "Mariana bay sands singapore"(不是 select 自动完成建议),它不会 return 纬度和经度参数。

如何获取像 airbnb 一样的经纬度参数?

自动完成功能是 Places 库的一部分 - 这就是为什么您没有收到使用地理编码器的位置结果,而自动完成选择为您的查询提供了 latlng。

使用地点 API 应该可以解决您的问题。示例:https://maps.googleapis.com/maps/api/place/textsearch/xml?query=Mariana+Bay+Sands+Singapore&key=YOUR_API_KEY

地理编码器 API 应仅用于地址,而地点 API 和地点自动完成可用于语义位置和地址(包括 POI 或您示例中的企业)。有关更多信息,请阅读 this blog post