Я сохранил набор координат в Firebase и хочу перенести эти координаты в мой проект Android, установить их на карте в качестве маркеров и нарисовать прямые линии между ними.Итак, это мой код onMapReady:
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
LatLng sydney = new LatLng(34.505688, 36.5946491);
//mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, 16));
new MyAsyncTask().execute();}
И в MyAsycTask есть этот код:
private class MyAsyncTask extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... voids) {
gettingCoordinates();
return null;
}
@Override
protected void onPostExecute(Void result) {
drawPath();
}
}
Здесь есть два метода, используемых в MyAsycTask:
public void gettingCoordinates(){
fireget.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
HashMap<String,String> value=new HashMap<>();
value=(HashMap<String,String>)dataSnapshot.getValue();
Lan=Double.parseDouble(value.get("Latitude"));
Long=Double.parseDouble(value.get("Longitude"));
points.add(i,new LatLng(Lan,Long));
i++;
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
И вот:
public void drawPath(){
for (LatLng point : points) {
mMap.addMarker(new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker))
.anchor(0.2f, 1.0f)
.position(point));
PolylineOptions rectOptions = new PolylineOptions()
.width(5)
.color(Color.RED)
.add(point);
polyline = mMap.addPolyline(rectOptions);
polyline.setPoints(points);
}
}
Итак, мой вопрос: когда я запускаю код, он сначала выполняет метод drawPath, а затем переходит к выполнению метода gettingCoordinates Вот моя структура firebase: https://i.stack.imgur.com/9CbYY.png Я надеюсь, что вы можете мне помочь.