Android高德地图步行路径规划错乱的问题解决[问题一]
来源:互联网 发布:淘宝手机端的收藏链接 编辑:程序博客网 时间:2024/06/11 05:26
因为最近项目需求要做地图,用的是高德的。需要在两点之间规划步行路径。
但是在开发中遇到了些比较蛋疼的问题。做次记录以备日后查阅。
我用的是高德4.11版本的3d地图
问题一:
步行路径规划,当终点或者起点在楼里或者没有实际道路的情况下会出现下面的这种状况,体验很糟糕。
这种情况困扰了我好久,在高德论坛上看到有人说到了
protected void addPolyLine(PolylineOptions options)
这个方法,管理路线的。于是就去看了一下。顺便解决了这个问题。
在高德官方demo的overlay包下的RouteOverlay类中找到了上面的这个方法,查找调用后,
到了WalkRouteOverlay中的addToMap()方法。
/** * 添加步行路线到地图中。 * * @since V2.1.0 */public void addToMap() { initPolylineOptions(); try { List<WalkStep> walkPaths = walkPath.getSteps(); for (int i = 0; i < walkPaths.size(); i++) { WalkStep walkStep = walkPaths.get(i); LatLng latLng = AMapServicesUtil.convertToLatLng(walkStep .getPolyline().get(0)); if (i < walkPaths.size() - 1) { if (i == 0) { addWalkPolyLine(startPoint, latLng); } checkDistanceToNextStep(walkStep, walkPaths.get(i + 1)); } else { LatLng latLng1 = AMapServicesUtil .convertToLatLng(getLastWalkPoint(walkStep)); addWalkPolyLine(latLng1, endPoint); } //addWalkStationMarkers(walkStep, latLng); //问题出现在这个方法上。 addWalkPolyLines(walkStep); } addStartAndEndMarker(); showPolyline(); } catch (Throwable e) { e.printStackTrace(); }}
默认情况下应该是上面这样的。
注释掉的这个方法
addWalkStationMarkers(walkStep,latLng)
如果使用了这个方法,路线上会出现小人图标
即使你设置了
walkRouteOverlay.setNodeIconVisibility(true);
解决方法:
该方法一共添加了两次路线所以才会导致上面的问题。so。需要做的事情很简单了。
/** * 添加步行路线到地图中。 * * @since V2.1.0 */ public void addToMap() { initPolylineOptions(); try { List<WalkStep> walkPaths = walkPath.getSteps(); for (int i = 0; i < walkPaths.size(); i++) { WalkStep walkStep = walkPaths.get(i); LatLng latLng = AMapServicesUtil.convertToLatLng(walkStep .getPolyline().get(0)); /* if (i < walkPaths.size() - 1) { if (i == 0) { addWalkPolyLine(startPoint, latLng); } checkDistanceToNextStep(walkStep, walkPaths.get(i + 1)); } else { LatLng latLng1 = AMapServicesUtil .convertToLatLng(getLastWalkPoint(walkStep)); addWalkPolyLine(latLng1, endPoint); }*/ //addWalkStationMarkers(walkStep, latLng); //问题出现在这个方法上。 addWalkPolyLines(walkStep); } addStartAndEndMarker(); showPolyline(); } catch (Throwable e) { e.printStackTrace(); } }
效果如下
哎。终于走在路上了。
1 0
- Android高德地图步行路径规划错乱的问题解决[问题一]
- Android 高德地图 步行 路线规划
- 高德地图 步行路线规划 Walking
- 高德地图-添加路线规划(自驾、步行...)
- 高德地图线路规划的接入使用(步行-公交-驾车)
- Android 基于高德地图路径规划
- 高德地图路径规划
- Android百度地图——路径规划(驾车、步行和公交线路搜索)
- Android百度地图 - 路径规划(驾车、步行和公交线路搜索)
- 高德地图---路径规划---语音导航的开发
- 高德地图04--路径规划
- 高德地图WebAPI : 驾车路径规划
- 高德地图JavascriptAPI:驾车路径规划
- 百度地图之多点步行路径连线问题
- 【高德地图API】从零开始学高德JS API(五)路线规划——驾车|公交|步行
- 【高德地图API】从零开始学高德JS API(五)路线规划——驾车|公交|步行
- Android百度地图、高德地图、腾讯地图导航路线规划问题
- Android百度地图、高德地图、腾讯地图导航路线规划问题
- IP地址
- 用容器类实现事件坚挺器接口的示例
- Git的.ssh文件夹内容介绍
- 电路问题解答
- 进程通信之管道通信
- Android高德地图步行路径规划错乱的问题解决[问题一]
- golang中协程同步sync.waitGroup
- 知识分享——MySql事务
- 特征选择--信息增益(相对熵、KL散度、KL距离)
- 指针
- 你会写“atoi”吗???
- Entity Framework-database first 控制台程序
- Maven学习(五)-- 聚合与继承
- 记一次部门迎新趣味竞技活动