想要在导航中添加途径点,然后再手动与调用方法删除途经点。 看高德导航SDK中,找到了添加途径点的方法,但没有点击途经点的回调。
时间: 2024-03-12 09:50:03 浏览: 25
在高德导航SDK中,可以通过 `AMapNaviListener` 接口中的 `onCalculateRouteSuccess(int[] ints)` 方法获取到规划成功后的路线方案,并且返回的数组中包含了途经点的信息,可以通过以下代码获取:
```
// 获取途经点的信息
List<NaviLatLng> wayPointList = mAMapNavi.getNaviPath().getCoordList();
```
然后,你可以在地图上添加途经点的标记,并为其设置点击事件,代码示例如下:
```
// 添加途经点的标记
for (int i = 0; i < wayPointList.size(); i++) {
LatLng latLng = new LatLng(wayPointList.get(i).getLatitude(), wayPointList.get(i).getLongitude());
MarkerOptions markerOptions = new MarkerOptions()
.position(latLng)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.way_point))
.anchor(0.5f, 0.5f);
Marker marker = aMap.addMarker(markerOptions);
marker.setObject(i);
wayPointMarkers.add(marker);
}
// 为途经点标记设置点击事件
aMap.setOnMarkerClickListener(new AMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
if (wayPointMarkers.contains(marker)) {
int index = (int) marker.getObject();
// 调用删除途经点的方法
mAMapNavi.removeWayPoint(index);
// 重新规划路线
mAMapNavi.recalculateRoute();
return true;
}
return false;
}
});
```
在上述代码中,首先通过 `for` 循环遍历途经点的信息,为每个途经点添加标记,并将其添加到 `wayPointMarkers` 列表中。然后,为地图添加标记的点击事件监听器,当点击途经点标记时,获取其在 `wayPointMarkers` 中的索引值,并调用 `mAMapNavi.removeWayPoint(index)` 方法删除该途经点,最后调用 `mAMapNavi.recalculateRoute()` 方法重新规划路线。
通过上述方式,你可以在导航中添加途经点,并且可以手动删除其中的途经点。