Google 地点详情过滤结果

Google Places Detail Filtering Results

我正在使用 Google Maps JS API,同时我正在使用地理定位功能和地点库。这刚刚开始发生在过去的 24 小时内,当计算地理位置然后代码搜索附近的啤酒厂时,我得到了很多随机的东西(不只是我,尽管已经让其他人在美国的那些地区测试了这个问题)。我上次检查时麦当劳不供应啤酒!我回头看了看,并没有对管理它的任何代码进行更改,所以我对正在发生的事情摸不着头脑。

Google 没有 'breweries' 作为类型,所以我使用关键字 属性 并且要搜索的值是 'breweries'。我什至尝试寻找 'brewery' & 'brewing' 因为我所在城市的实际啤酒厂在其名称中使用其中之一。这种策略实际上让事情变得更糟。我试图找到实际啤酒厂和 type[] 属性 之间的相关性,但没有成功。 属性 return 类型中的大多数元素为酒吧、餐厅、场所、景点。

所以我想知道的是:是否有一种方法可以获取字符串 'River City Brewing Co.' 并在其中搜索特定的字符串值 'brewery' 和 'brewing'。我试图找到一种方法来过滤结果,因为我的代码(很可能)或 Google 在搜索本地啤酒厂的结果时喝醉了。

所以在代码方面我想尝试做类似的事情:

function filter(search_results)
{
    if(brewery_data.name ??? 'brewery' || 'brewing')
    {
        // send to results
        return true;
    {
    else
    {
        // reject
        return false;
    }
}

有人对如何做到这一点有任何建议或想法吗?我在我的 GH 页面上为代码留下了 link 以供审查。 Maps.js 现在包含所有映射功能,app.js 是主要脚本,所有其他脚本目前都是一种存储,不会被 index.html 调用。我很感激你的帮助,因为这真的让我很难解决如何解决这个问题。如果我在 Google 代码中遗漏了导致此问题的某些内容,我宁愿修复它,但最终我必须找到一种方法来过滤结果以使我的应用程序正常工作,而不是将我的用户发送到麦当劳大 Mac 和 IPA!

代码: https://github.com/rockchalkwushock/Bro2Brew_App/tree/staging 网络应用程序: https://rockchalkwushock.github.io/Bro2Brew_App/

从来没有弄清楚为什么我会收到如此多的关键字返回的古怪结果:'breweries' 但我找到了一种使用 toString.prototype.includes() 过滤结果的方法。你可以在下面看到我是如何使用它的。如果有人有更好的过滤方法或知道为什么我得到的结果与我的关键字不符 属性,请随时分享!

function callbackResults(results, status)
{
  if (status == google.maps.places.PlacesServiceStatus.OK)
  {
    for (var i = 0; i < results.length; i++)
    {
      var place = results[i];
      var placeid = place.place_id;
      var name = place.name;

      if (name.includes("Brewery") || name.includes("Brewing"))
      {
        // console.log(name);
        apiMarkerCreate(place.geometry.location, place);
        addPlaceDetails(placeid);
      }
    }
    return true;
  }
  else
  {
      return false;
  }
}