谷歌地图雷达搜索名称奇怪的行为

时间:2016-11-16 19:17:55

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

使用radarSearch和名称参数时遇到奇怪的结果......

我有一长串存储在数据库中的商店,我试图为找到的每个商店显示标记。似乎当我使用完整列表时,它不会返回任何内容,即使是我知道存在的商店也是如此。如果我包含一个较短的列表,它似乎工作,但然后一些标记不包括商店"标记" infoWindow中的详细信息,商店名称,地址,电话号码。

最初在我的请求中,我只是使用名称参数中的所有商店,但这根本不起作用,所以我想我会搜索每个商店,这有点工作..但是,当列表很长时,它不会返回任何内容,不确定脚本最终是否会在未找到的许多请求之后停止,或者是什么。

我已经包含了一个小提琴,并在谷歌地图的脚本部分添加了评论,并包含了完整的商店列表。

我不确定这是谷歌地图限制,还是特定的商店名称会导致结果或正在发生的事情。

这是小提琴https://jsfiddle.net/bowenac/k7xfbwsg/16/

function performSearch() {
  markers = [];
  jQuery('#store_list').empty();

  //Full List of Stores
  //var storeList = 'Vitamin Shoppe|GNC|Fred Meyer|Kroger|King Sooper|Ralphs|Sprouts|Hi-Health|Harmons|Fresh Thyme|HEB|United|Rite Aid|Meijer|Harris Teeter|Wakefern|Publix|Winn-Dixie|BiLo|Walgreens|Walmart|Kmart|CVS|Longs Drugs|Hannaford|Stop & Shop|Giant Food|Weis Mkt|PURITANS PRIDE|BJs WHOLESALE CLUB PACKS|Viatamin World';

    //Only works when not using full list I know these work for 98444
  var storeList = 'GNC|Rite Aid|Fred Meyer|Walgreens|Walmart|Kmart|CVS';
  var splitStr = storeList.split('|');
  for (var i = 0; i < splitStr.length; i++) {
    //console.log(splitStr[i]);
    var request = {
      bounds: map.getBounds(),
      name: splitStr[i]
    };
    service.nearbySearch(request, callback);
  }
}

任何人都知道这里会发生什么?

1 个答案:

答案 0 :(得分:0)

我可以看到最近在Places API方面发生了一些变化。 Web服务的文档说:

  

name - 要与Google为此地点编入索引的所有内容进行匹配的字词。相当于关键字。名称字段不再局限于地名。此字段中的值与关键字字段中的值组合在一起,并作为同一搜索字符串的一部分传递。我们建议仅对所有搜索字词使用关键字参数。

https://developers.google.com/places/web-service/search#PlaceSearchRequests

但是,Maps JavaScript API文档未提及此更改。可能JavaScript API文档尚未更新。