首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google地图中的最短路径

google地图中的最短路径
EN

Stack Overflow用户
提问于 2020-11-19 00:26:03
回答 1查看 44关注 0票数 0

这是一个为快递员准备的android应用程序。快递员有几个包裹要递送,当他按下按钮时,他会将包裹带到谷歌地图上,并指定路线

在firebase中,我有一个包含接收者详细信息的包

代码语言:javascript
复制
                DocumentReference df=fStore.collection("package").document(random());
                Map<String,Object> userInfo= new HashMap<>();
                userInfo.put("Name",Name);
                userInfo.put("Surname",Surname);
                userInfo.put("Phone",Phone);
                userInfo.put("City",City);
                userInfo.put("Street",Street);
                userInfo.put("Nr",Nr);
                userInfo.put("ClientId","0");
                userInfo.put("MagazineId",magazinlist.get(a).getId());
                userInfo.put("CourierMail",courierlist.get(b).getEmail());

ss:https://i.stack.imgur.com/ngXTT.png

我想做的是:当快递员在数据库中存储了几个要递送的包裹时,当他按下按钮时,他会将包裹带到谷歌地图上,并指定路线。

Courier有他自己的套餐清单,他从数据库中读取:

代码语言:javascript
复制
                                            fStore.collection("package").whereEqualTo("CourierMail",mail).get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                        @Override
                        public void onComplete(@NonNull Task<QuerySnapshot> task) {
                            for(QueryDocumentSnapshot document :task.getResult()){

                                for(int i=0;i<MagazineList.size();i++){
                                    if(document.get("MagazineId").toString().equals(MagazineList.get(i).getId())){

                                        int temp=0;
                                        for (MagazynClass m : magazyny) {
                                            if(m.getId().equals((MagazineId.get(i).getId()))){
                                                //
                                            }else {
                                                temp++;
                                            }
                                        }
                                        if(temp==magazyny.size()) {
                                            magazyny.add(MagazineList.get(i));
                                        }


                                    }
                                }

                            }


                            for (MagazynClass i : magazyny) {
                                infolist.add(i.getCity()+" "+i.getStreed()+" "+i.getNr());
                            }
                            ArrayAdapter<String> arrayAdapter=new ArrayAdapter<>(getApplicationContext(),android.R.layout.simple_list_item_1,infolist);
                            lvMagazyny.setAdapter(arrayAdapter);
                        }
                    });

而且它起作用了。

但现在我有个问题。

例如,快递员在伦敦,他有两个包裹要先在谢菲尔德投递,然后在利物浦投递。我怎样才能找到快递公司的最短路线呢?Android studio或谷歌地图都有这样的选项,或者我必须自己检查两个点之间的距离并找到最短的路吗?

导航到一个点不是问题,因为这是2-3行代码,但在最短路径下导航到两个或更多点会有问题

EN

回答 1

Stack Overflow用户

发布于 2020-11-19 21:04:45

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64897163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档