【发布时间】:2019-09-25 10:38:32
【问题描述】:
我有一个客户正在使用 Yelp API 来获取 10 个最接近使用纬度和经度的点的结果。 api 查询将类别的“列表”组合在一起,然后将其传递给 Yelp 中的查询。
类似这样的:
$categories = [ 'pharmacy', 'hospitals', 'firedepartments', 'policedepartments', 'parks', 'restaurants', 'grocery' ];
$list = join($categories, ",");
进行该调用时,Yelp 似乎无法正确返回所有类别别名。但是,当单独调用每个类别时,它确实返回了类别别名的权利。
所以当我使用 foreach() 语句循环分类时,像这样:
foreach($categories as $k=>$v){
$resulted = yelp_search($v, $range, $lat, $lon, $num);
$resulted = json_decode($resulted, true);
$result[] = array_merge($result, $resulted);
}
它会将它添加到 $result 数组中。但问题是,它只会将最后一个类别添加到列表中,例如在本例中为“杂货店”。因此,当 javascript 中的函数被选择为“最接近”时,它只会在地图和列表中显示杂货图标,而不是它返回的所有内容。
这是问题 #1,问题 #2 就是这个。在显示的列表中,因为 'category' 被设置为与 javascript 中的函数'最接近',所以我必须仔细查看返回的 json 数据中的类别,并检查它是否与列表中的某些内容匹配。
喜欢这个
for (var i = 0; i < count; i++) {
var b = results[category]['businesses'][i];
if(category == "closest"){
ccount = b.categories.length;
for(var m = 0; m < ccount; m++){
console.log(b.categories[m]['alias']);
var alias = cats.includes(b.categories[m]['alias']);
if(alias){
var c = b.categories[m]['alias'];
break;
}
else{
var c = results[category]['category_name'];
}
}
update = update + '<tr><td role="button" class="td_menu" data-category="' + c + '" data-index="' + i + '"><img style="height: 20px; padding-right: 5px;" src="<?php echo get_template_directory_uri(); ?>/images/' + c + '.png"><span style="vertical-align: top;">' + b.name +
'</span></td><td></td><td>' + (b.distance * 0.00062137).toFixed(2) + '</td><td>mi</td></tr>\n';
}
else{
update = update + '<tr><td role="button" class="td_menu" data-category="' + category + '" data-index="' + i + '"><img style="height: 20px; padding-right: 5px;" src="<?php echo get_template_directory_uri(); ?>/images/' + category + '.png"><span style="vertical-align: top;">' + b.name +
'</span></td><td></td><td>' + (b.distance * 0.00062137).toFixed(2) + '</td><td>mi</td></tr>\n';
}
}
所有这部分似乎都可以正常工作,因为它确实返回了正确的类别别名(又名杂货店)并且列表中的图标确实显示了。我怀疑一旦我弄清楚如何解决问题 #1,问题 #2 就会自行解决。
我需要一些指导。我花了 2 天的时间试图做到这一点并在列表中显示正确的图标,以及获取最接近的数据,以便它确实包含数据中的所有别名。
【问题讨论】:
标签: javascript php json yelp yelp-fusion-api