Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Algolia-多重内多边形_Javascript_Algolia - Fatal编程技术网

Javascript Algolia-多重内多边形

Javascript Algolia-多重内多边形,javascript,algolia,Javascript,Algolia,在阅读了Algolia的博客文章后,我已经使用函数实现了and或filter,一切都很好。 但几天后,它开始返回零结果 通过设置第二个多边形后,我可以验证这一点 我已经检查了所有匹配结果的lat/lng元组,以及多边形值的lat/lng字符串,我觉得一切都很好 当我用第一个多边形设置insidePolygon时,返回的结果是正确的。 但是如果我设置第二个多边形,Algolia将返回零结果 这是我正在做的。第一个多边形: setQueryParameter("insidePolygon", "51

在阅读了Algolia的博客文章后,我已经使用函数实现了and或filter,一切都很好。 但几天后,它开始返回零结果

通过设置第二个多边形后,我可以验证这一点

我已经检查了所有匹配结果的lat/lng元组,以及多边形值的lat/lng字符串,我觉得一切都很好

当我用第一个多边形设置insidePolygon时,返回的结果是正确的。 但是如果我设置第二个多边形,Algolia将返回零结果

这是我正在做的。第一个多边形:

setQueryParameter("insidePolygon", "51.565237,-0.127758,51.548264,-0.061937,51.507314,-0.034756,51.466401,-0.062055,51.449465,-0.127758,51.466401,-0.193462,51.507314,-0.220760,51.548264,-0.193580");
这将返回22个结果。一切都好

第二个多边形:

setQueryParameter("insidePolygon", "0.089927,0.000000,0.063588,0.063588,0.000000,0.089927,-0.063588,0.063588,-0.089927,0.000000,-0.063588,-0.063588,-0.000000,-0.089927,0.063588,-0.063588");
现在我有0个结果。因为这是一个OR操作符,我觉得这种行为很奇怪。它至少应该显示我用第一个多边形过滤得到的22个结果

任何帮助都将不胜感激


谢谢

除非我没有正确理解您的问题,否则您对
setQueryParameter
的第二次调用实际上覆盖了您设置的第一个多边形

我的猜测是,第二个多边形不包含任何结果,因此,一旦设置了它,就没有命中

要对多个多边形进行并集,可以使用以下语法:
setQueryParameter(“insidePolygon”、[…多边形1的点…]、[…多边形2的点…])

在你的情况下,这将是:

setQueryParameter("insidePolygon", [[51.565237,-0.127758,51.548264,-0.061937,51.507314,-0.034756,51.466401,-0.062055,51.449465,-0.127758,51.466401,-0.193462,51.507314,-0.220760,51.548264,-0.193580], [0.089927,0.000000,0.063588,0.063588,0.000000,0.089927,-0.063588,0.063588,-0.089927,0.000000,-0.063588,-0.063588,-0.000000,-0.089927,0.063588,-0.063588]]);

当然,您可以有两个以上的多边形。

非常感谢Oliver!在我发布这篇文章的几天后,Algolia的人已经帮我解决了问题,我只是忘了过来给我答案。但你绝对正确;)啊,太好了,我不知道!我也是“阿尔戈利亚人”;)祝你周日愉快!