Google Maps API v3:为什么Google Maps API V3和Google地图的搜索结果存在不一致之处?

时间:2014-12-04 22:01:52

标签: javascript google-maps search google-maps-api-3 google-places-api

我正在使用使用Google Maps API v3的自定义地图应用程序。我遇到了一些问题。

我正在使用地方库在我的地图中心附近搜索一个带有关键字的大半径。

问题1:当我搜索" Home Depot"如果没有引号,我会得到' Home'或者' Depot'所以房地产经纪人回来了,牙医名为"牙科仓库"返回,依此类推。但是,这并不是在谷歌地图中发生的。他们设法只返回Home Depots而无需添加引号。当然,通过在用于请求的关键字中添加引号可以解决此问题,但我认为我的用户不一定知道要添加引号。我的问题是Google地图知道默认情况下只会返回Home Depots,为什么他们的API没有?

问题2:其他时候,根本找不到地方。有一家名为" The Wedge"并搜索' wedge'根本不会返回任何结果,但搜索“楔形”'在我的城市谷歌地图返回四个兴趣点,餐厅和两个目标。

为什么不一致?

1 个答案:

答案 0 :(得分:1)

我认为我使用谷歌地图本身进行相同搜索后,使用我的搜索收到的内容与收到的内容之间存在差异的原因有几个。

  1. Google不会使用与我收集的地图API完全相同的请求。

  2. 我相信他们在广受欢迎的术语和地方都会有点聪明。例如在没有报价的情况下搜索“Home Depot”只返回Home Depots,而不是Dental Depot,Oil Depot,Home Cleaning Solutions等。因为在数百万人搜索过之后,他们只想要Home Depot。此结果未反映在其API的结果中。

  3. 要解决这个问题,我的请求数量会增加一倍。首先,我制作了keyword nearbySearch,然后我制作了name nearbySearch。这当然会返回更多结果,有些是无关紧要的,但总的来说,这是两个中的一个结果更好的结果。为了完整起见,这看起来像:

    request = {
      keyword: keyword,
      bounds: bounds
    }
    
    service.nearbySearch(request, searchHandler);
    
    
    request = {
      name: keyword,
      bounds: bounds
    }
    
    service.nearbySearch(request, searchHandler);
    

    我已经宣布requestkeywordboundsservicesearchHandler回调。

    如果您正在努力从搜索中获得所需内容,请尝试将这样的请求加倍,并希望它对您有用。