You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ionic 3中如何按营业时间/评分筛选谷歌Places餐厅?

关于Google Places餐厅筛选的问题解答

嘿,我来帮你搞定这两个Google Places筛选的问题!

问题1:是否有办法按营业时间筛选谷歌地图(Google Places)中的餐厅?

当然可以!Google Places API提供了直接的参数支持筛选当前正在营业的餐厅,另外如果需要更精细的营业时间筛选(比如特定日期/时段),可以通过获取场所详情后自行处理:

  • 快速筛选当前营业:使用open_now布尔参数,在搜索请求中设置为true,API会直接返回当前正在营业的场所。
  • 精细时段筛选:如果要筛选“周一11点-13点营业”这类特定时段的餐厅,需要先通过getDetails接口获取每个场所的opening_hours详情(包含weekday_text或periods字段),然后自己编写逻辑判断是否符合你的时段要求。

问题2:在Ionic 3中,是否有办法通过营业时间(筛选当前营业open_now)或评分来筛选谷歌Places中的餐厅?

完全可以!结合你提供的代码片段,我帮你修改一下,实现这两个筛选功能:

1. 筛选当前营业的餐厅(open_now)

直接在你的request对象中添加open_now: true参数即可,API会自动帮你过滤:

getTypes(latLng) { 
  let loading = this.loadingCtrl.create({ content: 'Procurando...' }); 
  loading.present(); 
  var service = new google.maps.places.PlacesService(this.map); 
  let request = { 
    location: latLng, 
    radius: this.isKM, 
    type: [this.item],
    open_now: true // 新增:筛选当前正在营业的餐厅
  }; 
  return new Promise((resolve, reject) => { 
    service.nearbySearch(request, function (results, status) { 
      if (status === google.maps.places.PlacesServiceStatus.OK) {
        loading.dismiss();
        resolve(results);
      } else {
        loading.dismiss();
        reject(status);
      }
    });
  });
}

2. 按评分筛选餐厅

Google Places的nearbySearch接口没有直接的评分阈值筛选参数,但我们可以在获取结果后,用数组的filter方法自行过滤出符合评分要求的餐厅(比如只保留评分≥4.0的):

getTypes(latLng) { 
  let loading = this.loadingCtrl.create({ content: 'Procurando...' }); 
  loading.present(); 
  var service = new google.maps.places.PlacesService(this.map); 
  let request = { 
    location: latLng, 
    radius: this.isKM, 
    type: [this.item],
    open_now: true // 可选:同时保留当前营业筛选
  }; 
  return new Promise((resolve, reject) => { 
    service.nearbySearch(request, function (results, status) { 
      if (status === google.maps.places.PlacesServiceStatus.OK) {
        // 过滤出评分≥4.0的餐厅,同时排除没有评分的场所
        const filteredByRating = results.filter(place => place.rating && place.rating >= 4.0);
        loading.dismiss();
        resolve(filteredByRating);
      } else {
        loading.dismiss();
        reject(status);
      }
    });
  });
}

额外提示

  • 注意部分餐厅可能没有公开评分,所以过滤时要先判断place.rating是否存在,避免出现undefined报错。
  • 如果需要按评分排序,可以在request中添加rankby: 'rating'(注意使用rankby时不能同时设置radius,需要改用location结合rankby),这样结果会按评分从高到低排列。

内容的提问来源于stack exchange,提问作者João Mello

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:14:46