首页 > 解决方案 > RoadElement.getPermanentDirectedLinkId() 始终返回 0

问题描述

出于某种原因,无论我在哪里,这段代码总是返回 0

public Long getClosestLinkID()
{
    GeoCoordinate cur = HereMapsManager.instance.getPositionAnchor(); //returns my current position
    Long closest = -1L;

    RoadElement closest_elem = RoadElement.getRoadElement(cur, "fre");
    if (closest_elem != null) {
        closest = closest_elem.getPermanentDirectedLinkId();
    }

    return closest;
}

它找到一个有效的 RoadElement,但调用 getPermanentDirectedLinkId()(或 getPermanentLinkId())不断返回 0。

现在,文档说:

Returns:
Permanent Link ID with direction of this element or 0 if not available.

所以我在法国的道路上到处尝试使用地图上的随机坐标,它一直返回 0。我在这里迷路了。

标签: androidhere-api

解决方案


使用公共交通方式 RouteOptions.TransportMode#PUBLIC_TRANSPORT 时,getPermanentDirectedLinkId 和 getPermanentLinkId 属性不可用。对于所有其他运输方式,它仅在使用在线连接方式计算的路线中可用。您应该将 Connectivity 显式设置为 ONLINE(setConnectivity(Connectivity.ONLINE))。

另外,请检查您是否处于以下两种模式之一:

  1. 跟踪 - NavigationManager.startTracking()
  2. 导航 - NavigationManager.startNavigation()

这是将您的位置映射到路线所必需的。

您还必须明确下载和使用离线地图才能获取此信息。

根据以下客户评论进行编辑以添加更多信息:您可以通过查看以下页面来检查您的 SDK 支持的类和方法

  • 入门 SDK:{SDK-Download-location}/HERE_Android_SDK_Starter_v3.8_65/HERE-sdk/libs/docs/mapsdoc/index.html
  • 高级 SDK:{SDK-Download-location}/HERE_Android_SDK_Premium_v3.8.0.104/sdk/HERE-sdk/libs/docs/mapsdoc-hybridplus/index.html

推荐阅读