【问题标题】:Sort results in Azure Maps Search在 Azure Maps 搜索中对结果进行排序
【发布时间】:2019-08-07 01:44:02
【问题描述】:

我正在使用 AzureMaps 搜索,我正在尝试检索某个位置的所有 POI(兴趣点),但我无法在任何文档中找到如何排序,例如按距离我的结果

有人有同样的问题吗?

https://atlas.microsoft.com/search/poi/json?subscription-key=key&api-version=1.0&query=restaurant&lat=45&lon=9

【问题讨论】:

  • 您想按哪个距离排序,大多数服务都采用直线距离,但可能非常不准确,或者基于行驶距离?
  • 直线距离够了,行车距离应该很可怕

标签: azure rest api azure-maps


【解决方案1】:

我认为当前的 Search POI API 不提供排序作为 API 本身的一部分。因此,您必须在之后在内存中执行此操作。结果默认按“分数”(相关性)排序。

【讨论】:

  • 所以如果我有 1000 个结果,我必须阅读所有结果,然后在运行时进行排序.. 不是最好的
【解决方案2】:

无法使用 POI 按结果排序,我猜你在这里寻找什么。根据最佳实践,您可以使用nearby-search

https://atlas.microsoft.com/search/address/json?subscription-key={subscription-key}&api-version=1&query=400%20Broad%20Street%2C%20Seattle%2C%20WA&countrySet=US

【讨论】:

  • 是的,但是在附近,我无法查询类别,所以我有同样的问题,阅读所有结果,并测试是否是正确的类别
  • 在这种情况下,使用 POI 的限制和半径 "atlas.microsoft.com/search/poi/category/…{{2}}&lat={{0}}&lon={{1}}&radius={{3}}&limit={ {4}}";
  • 使用类别它可以工作,但如果我使用 /search/poi,则不能按名称搜索
  • 这真的取决于你需要什么,也许你需要对组合进行一些调整
  • 我需要允许用户按名称搜索餐厅/咖啡馆,并且应该搜索世界各地,或者按附近的“餐厅”类别搜索,我需要所有结果都按距离排序
【解决方案3】:

如果您想要直线距离,您可以循环查看结果,可以使用haversine formula 计算距离。如果使用 Azure Maps Web SDK,则可以改用 atlas.math.getDistanceTo 函数。计算到每个点的距离后,您就可以进行相应的排序。

如果您想获得到每个点的行驶距离,您可以采取两种方法;

  1. 使用Route Matrix API。这相当容易使用,比下面的第二个选项更不容易出错,并且响应很容易使用。这种方法唯一的缺点是您需要 S1 定价层才能访问此服务,并且每个单元都会生成一个交易,该交易可能会很快变得昂贵。
  2. Routing Directions API 与大量航路点一起使用,这些航路点从您的起点到每个目的地再返回 (A->B->A->C....)。这将需要更多的工作来理解结果,如果路线的任何一段由于任何原因无法路由,则整个路线计算将失败。但是,这将比选项一便宜得多,因为您可以使用具有免费限制的 S0 定价层,并且在大多数情况下这只会产生 1 笔交易(如果您有大量位置,那么您可能需要将它们分解并分散跨越几个电话)。因为这将计算从起点到每个目的地并返回的路线,所以您进行的计算量是您需要的两倍,这可能会使这比方法 1 慢。在解析响应时,您会像那些那样查看奇数索引的路线支路从起点到每个目的地。在某些情况下,可能需要知道从目的地到出发地的旅行时间(即所有员工上班需要多长时间),在这种情况下,您会想要使用偶数腿。

同样,一旦你有了距离,或者更好的是,旅行时间,你就可以对结果进行相应的排序。

【讨论】:

  • 好的,但这正是我不想要的,我无法遍历数千个结果并再次拨打电话。太费时间了……
  • 其实POI搜索​​服务已经返回了一个直线距离值。您可以简单地根据它进行排序。对数千个结果进行排序实际上非常快。也就是说,该服务不会返回数千个结果,最多返回 100 个结果。
猜你喜欢
  • 2021-08-19
  • 1970-01-01
  • 2011-10-16
  • 2021-11-14
  • 2013-04-28
  • 2016-05-21
  • 1970-01-01
  • 1970-01-01
  • 2021-10-26
相关资源
最近更新 更多