想要在导航中添加途径点,然后再手动与调用方法删除途经点。
看高德导航SDK中,找到了添加途径点的方法,但没有点击途经点的回调。
点击途径点没有反应,以上的问题该怎么去解决?
这是添加起点,终点与途径点。
想要在导航中添加途径点,然后再手动与调用方法删除途经点。
看高德导航SDK中,找到了添加途径点的方法,但没有点击途经点的回调。
点击途径点没有反应,以上的问题该怎么去解决?
高德导航SDK中,添加途径点可以使用:
java
AMapNavi.getInstance().addWayPoint(latLonPoint);
但是删除途经点并没有提供直接的删除方法,需要自己监听途经点Marker的点击事件,在点击时移除该途经点:
java
// 监听所有marker点击事件
AMapNavi.getInstance().addAMapNaviListener(new AMapNaviListener() {
@Override
public void onWayPointClick(int wayID) {
// 移除该途经点
AMapNavi.getInstance().removeWayPoint(wayID);
}
});
那么在卡片式导航界面,可以添加自定义Marker用于表示途经点,并为其添加点击事件,在点击事件中调用 AMapNavi.getInstance().removeWayPoint(wayID); 移除该途经点。
具体代码如下:
java
// 添加Marker用于表示途经点
LatLonPoint latLonPoint = new LatLonPoint(39.906901, 116.437227);
AMapNavi.getInstance().addWayPoint(latLonPoint);
int wayPointId = latLonPoint.getWayPointId();
Marker wayPointMarker = aMap.addMarker(new MarkerOptions()
.position(latLonPoint)
.icon(BitmapDescriptorFactory.fromResource(R.mipmap.icon_way_point))
.draggable(false));
// 监听Marker点击事件
wayPointMarker.setOnMarkerClickListener(new AMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
// 移除途经点
AMapNavi.getInstance().removeWayPoint(wayPointId);
return false;
}
});
这样可以实现在卡片式导航界面中点击自定义的途经点Marker后,移除该途经点。