android - 有没有办法只显示特定路线的交通信息?
问题描述
我只想在特定路线上绘制交通信息。例如,我的路线是从位置 A 到位置 B,我只想显示特定道路上的交通数据,而不是地图上可见的所有道路。
是否有任何 HERE 地图 API 可用于此解决方案?
HERE 地图提供了一种解决方案,但它会在整个可见地图中显示交通信息:
https://developer.here.com/documentation/android-premium/dev_guide/topics/traffic.html
解决方案
似乎,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和该评论:
...它只需要在我需要的点之间绘制另一条路线就可以很好地工作,我可以使用按钮控制我在地图上显示的路线对象,并且我使用相同的路线进行导航。...
推荐阅读
- html - 使用 Selenium 通过 CSS 查找元素
- reactjs - Material-UI - 支持 babel-plugin-react-css-modules 和 rtl app
- python - 与 Ray 并行并通过超时获取结果
- r - 在 R 循环中写入文件
- ios - Swift - UITextView 不显示文本
- c# - 如何访问 Visual Studio 项目中的其他 SDK
- sql - 带有子查询的 Postgres XMLCONCAT()
- react-native-android - 使用 React Native 发送图像
- sql - TSQL SELECT 语句中的“As”和“=”有什么区别?
- python-3.x - 使用 pandas 从文本文件中提取字符串