这是一个为快递员准备的android应用程序。快递员有几个包裹要递送,当他按下按钮时,他会将包裹带到谷歌地图上,并指定路线
在firebase中,我有一个包含接收者详细信息的包
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有他自己的套餐清单,他从数据库中读取:
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行代码,但在最短路径下导航到两个或更多点会有问题
发布于 2020-11-19 21:04:45
https://stackoverflow.com/questions/64897163
复制相似问题