高德地图多点线路规划

public class MyMapActivity extends Activity implements AMap.OnInfoWindowClickListener ,RouteSearch.OnRouteSearchListener ,AMap.OnMarkerClickListener{
    private MapView map;
    private AMap aMap;
    private UiSettings uiSettings;
    private CameraUpdate mUpdate;
    private ArrayList<MapInfo> list,lists,jlist;  //途经点集合
    private ArrayList<LatLonPoint> list1;     
    private DriveRouteResult driveRouteResult;// 驾车模式查询结果
    private int drivingMode = RouteSearch.DrivingDefault;// 驾车默认模式
    private RouteSearch routeSearch;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        setContentView(R.layout.activity_my_map);
        map = (MapView)findViewById(R.id.map);

        map.onCreate(savedInstanceState);

       //(模拟数据)得到途经点集合

        list=new ArrayList<>();
        list.add(new MapInfo("4", 39.8530620000, 116.3747240000, "鸿运水果烟酒超市", "详细地址详细地址5555"));
        list.add(new MapInfo("6", 39.8516080000, 116.3734790000, "世纪华联超市", "详细地址详细地址7777"));
        list.add(new MapInfo("10",39.844693, 116.369901, "鲜花婚庆水果", "详细地址详细地址1010"));
        list.add(new MapInfo("12",39.84237, 116.381086, "街角蛋糕", "详细地址详细地址66666"));
        list.add(new MapInfo("16",39.854152, 116.415689, "北京同仁堂第二中医院", "详细地址详细地址222"));

        list.add(new MapInfo("17",39.860975, 116.412025, "北京市益华食品厂", "详细地址详细地址3333"));

        initdata();//根据途经点到起点的距离进行排序

        init();  //初始化地图


       //得到途经点坐标

        list1=new ArrayList<>();
        for (int i=0;i<list.size();i++){
            list1.add(new LatLonPoint(list.get(i).getLat(),list.get(i).getLng()));

        }

      //InfoWindow  和 Marker 监听 以及线路规划监听

        aMap.setOnInfoWindowClickListener(this);
        aMap.setOnMarkerClickListener(this);

        routeSearch = new RouteSearch(this);

        routeSearch.setRouteSearchListener(this);

        final RouteSearch.FromAndTo fromAndTo = new RouteSearch.FromAndTo(new LatLonPoint(39.854648,116.367852), new     LatLonPoint(39.833673,116.387424)); //设置起点和终点


        RouteSearch.DriveRouteQuery query = new RouteSearch.DriveRouteQuery(fromAndTo, drivingMode, list1, null, "");// 第一个参数表示路径规划的起点和终点,第二个参数表示驾车模式,第三个参数表示途经点,第四个参数表示避让区域,第五个参数表示避让道路
        routeSearch.calculateDriveRouteAsyn(query);// 异步路径规划驾车模式查询


    }

/**

* 根据途经点到起点的距离进行排序

*/

public  void  initdata(){

       jlist=new ArrayList<>();
        for (int i=0;i<list.size();i++){

            MapInfo mapInfo=new MapInfo();

            float[] results=new float[1];
            Location.distanceBetween(39.854648, 116.367852, list.get(i).getLat(), list.get(i).getLng(), results);

            mapInfo.setJuli(results[0]);

            mapInfo.setUid(list.get(i).getUid());
            jlist.add(mapInfo);
         

        }

        double temp;
        String str;
        for(int i = jlist.size() - 1; i >= 0; i --) {
            for (int j = 0; j < i; j+
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值