HERE API技术问询:基于相邻LinkID信息判断交叉街道的相对方向[更新]
判断链路朝向与获取LINK_FCn属性的简便方案
针对你遇到的「从驾驶员视角判断链路朝向」和「简化LINK_FCn属性获取」的问题,我分享几个更高效的思路:
一、快速判断链路的行驶朝向(驾驶员视角)
你不用绕路构建新路线,直接利用已有的链路信息就能搞定:
- 利用链路的节点属性:每条HERE链路都自带
REF_NODE(参考节点)和NONREF_NODE(非参考节点)属性,链路的默认行驶方向是从REF_NODE指向NONREF_NODE——这正好对应驾驶员的正向行驶视角。只要拿到这两个节点的信息,就能直接确定链路朝向。 - 通过Link Shapes的坐标顺序:你在步骤2中获取的
Link Shapes,其坐标数组的顺序就是链路的行驶方向(从第一个坐标点到最后一个坐标点)。比如,shape的第一个点是链路起点,最后一个是终点,顺着这个方向就是驾驶员的行驶朝向。
二、简化独立链路的LINK_FCn属性获取
你的步骤1和3太繁琐了,其实有两种更直接的方式:
- 单链路属性查询接口:HERE提供了专门的链路属性查询接口,不需要构建完整路线,直接传入单个LinkID,指定需要获取的
LINK_FCn(*)属性,就能直接返回该链路的相关信息。这种方式避免了构建混乱路线的冗余操作。 - 在步骤2的请求中追加属性:修改你步骤2的请求参数,把
linkattributes字段补充上LINK_FCn(*)(比如改成linkattributes=fc,LINK_FCn(*)),这样在获取Link Shapes的同时,就能一次性拿到LINK_FCn属性,一步完成两个需求,不用再单独走步骤1的路线请求。
举个参数调整的例子,你步骤2的请求可以改成:
https://route.ls.hereapi.com/routing/7.2/calculateroute.json?apiKey={apiKey}&representation=linkPaging&linkattributes=fc,LINK_FCn(*)&waypoint0=link!...mode=car;shortest;traffic:enabled
这样返回的结果里就会包含每条链路的LINK_FCn属性,省去后续额外请求的麻烦。
内容的提问来源于stack exchange,提问作者Nick11
相关产品推荐
相关产品推荐

