繁体   English   中英

Google Maps API v3:为什么Google Maps API V3和Google Maps的搜索结果不一致?

[英]Google Maps API v3: Why are there inconsistencies between my search results by Google Maps API V3 and Google Maps?

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

我正在使用地方信息库在我的地图中心附近进行搜索,并且带有关键字的半径很大。

问题1:在不带引号的情况下搜索“家得宝”时,会得到“家”或“得宝”的结果,因此房地产经纪人会回来,返回名为“牙科家得宝”的牙医,依此类推。 但是,这不会在Google Maps本身中发生。 他们设法只返回家得宝,而无需添加报价。 当然,可以通过在用于请求的关键字中添加引号来解决此问题,但是我认为用户不一定会知道添加引号。 我的问题是Google Maps知道默认情况下仅返回家得宝,为什么它们的API没有?

问题2:其他时候,根本找不到地方。 有一家名为“ The Wedge”的比萨餐厅,搜索“ wedge”根本不会返回任何结果,但是在Google地图中搜索我所在城市的“ wedge”会返回四个景点,包括餐厅和两个Target。

为什么不一致?

我认为,使用搜索收到的内容与使用Google Maps本身执行相同搜索时收到的内容之间存在差异的原因有很多。

  1. 根据我收集的信息,Google不会使用与其地图API完全相同的请求。

  2. 我相信他们在热门搜索的字词和地点周围运用了一些技巧。 例如,搜索不带引号的“ Home Depot”仅返回Home Depot,而不返回Dental Depot,Oil Depot,Home Cleaning Solutions等。因为经过数百万人搜索后,他们只想要Home Depot。 此结果未反映在其API的结果中。

为解决此问题,我将请求数量加倍。 首先,我将keyword nearbySearch ,然后将name nearbySearch 当然,这会返回更多结果,并且其中一些是不相关的,但是总的来说,使用两者之一可以得到更好的结果。 为了完整起见,这实际上是这样的:

request = {
  keyword: keyword,
  bounds: bounds
}

service.nearbySearch(request, searchHandler);


request = {
  name: keyword,
  bounds: bounds
}

service.nearbySearch(request, searchHandler);

我已经声明了requestkeywordboundsservicesearchHandler回调的地方。

如果您想从搜索中获得想要的东西,请尝试将这样的请求加倍,我希望它对您有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM