首页 > 解决方案 > 有没有办法只显示特定路线的交通信息?

问题描述

我只想在特定路线上绘制交通信息。例如,我的路线是从位置 A 到位置 B,我只想显示特定道路上的交通数据,而不是地图上可见的所有道路。

是否有任何 HERE 地图 API 可用于此解决方案?

HERE 地图提供了一种解决方案,但它会在整个可见地图中显示交通信息:

https://developer.here.com/documentation/android-premium/dev_guide/topics/traffic.html

标签: androidhere-api

解决方案


似乎,Here Android SDK API 中没有“开箱即用”的解决方案,但无论如何您都可以使用解决方法并通过Routing REST API 获得流量估计。例如对于从 A 到 B请求的汽车路线,例如:

https://route.api.here.com/routing/7.2/calculateroute.json?waypoint0=52.5160%2C13.3779&waypoint1=52.5206%2C13.3862&mode=fastest%3Bcar%3Btraffic%3Aenabled&app_id=devportal-demo-20180625&app_code=9v2BkviRwi9Ot26kp2IysQ&departure=now

你得到了带有标签"length""travelTime"每条腿的响应,例如:

...
"length": 953,
"travelTime": 316,
...

你可以计算速度 = length.value / travelTime.value。您也可以使用响应摘要"distance""trafficTime"整个路线:

...
"summary": {
      "distance": 953,
      "trafficTime": 316,
...

问题的答案中描述的仅部分路线的颜色方法:

您可以提取路线几何以获取GeoCoordinates 构成折线的列表:

geoCoordinates = mapRoute.getRoute().getRouteGeometry()

然后,您可以通过从这些坐标构建新的折线来绘制各种颜色的路线部分:

GeoPolyline geoPolyline = new GeoPolyline();
for (GeoCoordinates point : geoCoordinates) {
    if (<your condition>){
        geoPolyline.add(point);
    }
}
MapPolyline mapPolyline = new MapPolyline(geoPolyline);
mapPolyline.setLineColor(<color>);
map.addMapObject(mapPolyline)

Teriblus和该评论:

...它只需要在我需要的点之间绘制另一条路线就可以很好地工作,我可以使用按钮控制我在地图上显示的路线对象,并且我使用相同的路线进行导航。...


推荐阅读