我们已经在我们的页面上实现了一个搜索框和谷歌地图,以允许客户根据地点查询执行搜索,到目前为止它运行良好。然而,使用 TextSearch 我们几乎总是得到 20 个结果(除非它是一个特定的点)。不过,我们更喜欢的是根据用户的搜索返回一组对用户更有意义的结果(即,如果他们正在搜索邮政编码内的教堂,我们不应该显示邮政编码以外的教堂)。
我知道我们可以根据位置和半径对结果进行偏差,甚至使用 NearbySearch 根据位置/半径限制结果。
但是,我们的客户是可能在世界任何地区搜索的国家用户,所以在用户搜索之前,我们不确定要设置什么位置和半径作为限制。我想根据他们的查询动态确定。
例如,在 Google 地图中,如果您搜索“30319 附近的教堂”,您将获得比“乔治亚附近的教堂”更加本地化的结果集
我已经测试过使用地理编码进行单独的查询以获取查询的单点位置。IE
getGeneralVicinity = ->
address = $('#address').val()
window.oneq.geocode.geocoder.geocode
address: address,
(results, status) ->
if status is google.maps.GeocoderStatus.OK
console.log(results[0].types)
似乎通过可能找到地理编码结果的类型(即位置),我们可以确定半径并使用geometry.location 作为位置边界。不幸的是,它并不一致,如果用户只搜索“教堂”,这不会给我们想要的结果。
任何帮助将不胜感激。