weixin_45700208 2023-06-06 15:31 采纳率: 0%
浏览 24
已结题

集成Android高德导航SDK

想要在导航中添加途径点,然后再手动与调用方法删除途经点。
看高德导航SDK中,找到了添加途径点的方法,但没有点击途经点的回调。
点击途径点没有反应,以上的问题该怎么去解决?

img


这是添加起点,终点与途径点。

  • 写回答

2条回答 默认 最新

  • IT论之程序员 2023-06-06 20:45
    关注
    
    高德导航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后,移除该途经点。
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月13日
  • 创建了问题 6月6日