[英]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本身执行相同搜索时收到的内容之间存在差异的原因有很多。
根据我收集的信息,Google不会使用与其地图API完全相同的请求。
我相信他们在热门搜索的字词和地点周围运用了一些技巧。 例如,搜索不带引号的“ 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);
我已经声明了request
, keyword
, bounds
, service
和searchHandler
回调的地方。
如果您想从搜索中获得想要的东西,请尝试将这样的请求加倍,我希望它对您有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.