【问题标题】:HTTP Error while trying to calculate a route using HERE Maps Android Lite API尝试使用 HERE Maps Android Lite API 计算路线时出现 HTTP 错误
【发布时间】:2019-12-31 08:16:19
【问题描述】:

我正在学习如何使用 Here Maps lite SDK for Android。我已经在文档中复制/粘贴了很多代码来计算路由,但我收到了一个奇怪的 HTTP 错误。以下是我的代码:

使用 Android 的位置服务填充起始航点,如下所示:

@Override
public void onCreate(Bundle savedInstanceState) {
    // ... other initialization code handling permissions and what else
    mLocationManager = (LocationManager) Objects.requireNonNull(getActivity()).getSystemService(Context.LOCATION_SERVICE);
    if (mLocationManager != null) {
        mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5, 5, this);
        mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5, 5, this);
    }
}

@Override
public void onLocationChanged(Location location) {
    startWaypoint = new GeoCoordinates(location.getLatitude(), location.getLongitude());
}

使用com.here.sdk.search.Search 选择目标,如下所示:

try {
    searchEngine = new SearchEngine();

    int maxSearchResults = 30;
    SearchOptions searchOptions = new SearchOptions(
            LanguageCode.EN_GB,
            TextFormat.PLAIN,
            maxSearchResults);
    searchEngine.search(startWaypoint, 'Westfield', searchOptions, (searchError, list) -> {
        MyApplication.getsInstance().hideProgress();
        if (searchError != null) {
            return;
        }
        destinationWaypoint  = list.get(0).coordinates;
    });
} catch (InstantiationErrorException e) {
    new RuntimeException("Initialization of SearchEngine failed: " + e.error.name());
}

起点和终点航路点的示例值:

startWaypoint {
    Lat: -33.79073353
    Lon: 150.99847916
    Alt: null
}

destinationWaypoint {
    Lat: -33.81746
    Lon: 151.00357
    Alt: null
}

这就是我尝试计算路线的方式:

List<Waypoint> waypoints = new ArrayList<>(Arrays.asList(startWaypoint, destinationWaypoint));

mRoutingEngine.calculateRoute(
        waypoints,
        new RoutingEngine.CarOptions(),
        (routingError, routes) -> {
            if (routingError == null) {
                if ((routes != null) && (routes.size() > 0)) {
                    Route route = routes.get(0);
                    showRouteDetails(route);
                    showRouteOnMap(route);
                    zoomToRoute(route);
                } else {
                    MyApplication.getsInstance().showDialog(getActivity(), false, "Error while calculating a route:", "Could not calculate a route", "OK", null, null, null);
                }
            } else {
                MyApplication.getsInstance().showDialog(getActivity(), false, "Error while calculating a route:", routingError.toString(), "OK", null, null, null);
            }
        });

我收到一个 HTTP 错误,并显示以下消息: 2019-12-28 16:07:22.581 32067-32171/com.example.app E/routing: [ERROR] routing - Routing error: 4, exception: Invalid routing error format, error code: 404

有没有人经历过这种情况?

更新

如果我使用相同的参数多次调用mRoutingEngine.calculateRoute(),最终它会成功并为我提供路线。这就是为什么这种行为让我感到困惑

【问题讨论】:

    标签: java android here-api


    【解决方案1】:

    如果您只在地图上单击一次,您可能会遇到此错误。要获得路线,首先在地图上单击两次以创建起点和目的地航路点,然后单击添加路线选项,它将按预期工作。

    因为 Routing 方法将路由列表作为 RoutingExample.java 中的参数。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2020-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多