如何在Here Routes SDK的AvoidanceOptions中添加GeoPolygon以避开指定区域?
解决Here Routes SDK探索版避开多边形区域的问题
现状说明
目前Android版Here Routes SDK探索版的AvoidanceOptions.avoidAreas仅支持GeoBox(矩形)类型,没有公开API直接支持GeoPolygon避障;你提到的addAvoidArea()方法并非当前版本的公开方法,可能是旧版API或内部未实现的接口。
替代实现方案
- 用多个GeoBox近似多边形:将目标多边形拆分成多个重叠或相邻的矩形,尽可能覆盖需要避开的区域,以此间接实现多边形避障。示例代码:
// 拆分多边形为多个GeoBox示例 val avoidBox1 = GeoBox(GeoCoordinates(52.5308, 13.3847), GeoCoordinates(52.5328, 13.3867)) val avoidBox2 = GeoBox(GeoCoordinates(52.5318, 13.3867), GeoCoordinates(52.5338, 13.3887)) val avoidanceOptions = AvoidanceOptions() avoidanceOptions.avoidAreas.addAll(listOf(avoidBox1, avoidBox2)) // 将配置传入路由计算逻辑 val routingOptions = RoutingOptions(...) routingOptions.avoidanceOptions = avoidanceOptions - 使用Here高级路由REST API:如果对避障精度要求较高,可以直接调用Here的高级路由后端API,该API支持传入
avoidPolygons参数(接受GeoPolygon格式的坐标集合),将请求结果解析后在客户端展示路径。 - 提交功能需求:通过Here开发者支持渠道提交添加
GeoPolygon避障的功能请求,推动官方在后续版本中支持该特性。
内容的提问来源于stack exchange,提问作者Addict of Rice
相关产品推荐
相关产品推荐

