过滤计算路线时将使用的道路

时间:2017-07-14 12:24:04

标签: ios swift here-api

我正在使用适用于iOS的HERE SDK开发应用程序,但我遇到了一个问题。

问题在于NMACoreRouter类。 在计算从A点到B点的路线时,我希望结果只包括我定义的道路。它不应该返回包括未包括的道路的结果。这是一种过滤功能。它找到了从A点到B点的最快路线,但只使用了某些道路(我可以定义,类似于从结果中排除高速公路的功能,这将仅包括我定义的道路)。 我查看了文档,但没有发现任何可以做到这一点。 我有一些想法如何解决这个问题,但没什么吸引人的。

a)使用calculateRoute方法,然后比较NMARoute.geometry,如果路线正在使用我的列表中包含的道路。如果不排除此路线,依此类推..

b)在计算路线时添加一些航点(在开始和停止旁边)。这里的问题是,当使用两个以上的航点时,它只返回一个航线。另一个问题是,我必须确定道路的哪个部分是哪个航路点,然后在计算之前添加它们,因为航路点限制(我认为它是128),如果路线应该很长,它将是问题

所以我很感兴趣,如果你有任何建议如何解决这个问题,更优雅(更快,更好......)。显然,这些解决方案远非完美。

1 个答案:

答案 0 :(得分:1)

为Premium SDK NMACoreRouter编制文档仅支持最多包含32个航点的路线。

NMACoreRouter未根据实际道路提供任何过滤机制。但是,您可以提供NMARoutingModeNMARoutingOption来指定您要排除某些类型的道路,例如没有收费公路或没有高速公路。

我想不出可能需要强制道路列表的用例。最接近的用例是使用航点。因此,如果您必须包含某条道路,那么只需添加一条位于该道路上的航点。

我猜路线选择的数量取决于您定义航点的粒度。否则,我建议通过传递一组不同的航路点来强制执行替代方案。