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

集成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日

悬赏问题

  • ¥30 为什么会失败呢,该如何调整
  • ¥50 如何在不能联网影子模式下的电脑解决usb锁
  • ¥20 服务器redhat5.8网络问题
  • ¥15 如何利用c++ MFC绘制复杂网络多层图
  • ¥20 要做柴油机燃烧室优化 需要保持压缩比不变 请问怎么用AVL fire ESE软件里面的 compensation volume 来使用补偿体积来保持压缩比不变
  • ¥15 python螺旋图像
  • ¥15 算能的sail库的运用
  • ¥15 'Content-Type': 'application/x-www-form-urlencoded' 请教 这种post请求参数,该如何填写??重点是下面那个冒号啊
  • ¥15 找代写python里的jango设计在线书店
  • ¥15 请教如何关于Msg文件解析