【发布时间】:2021-08-05 22:12:43
【问题描述】:
你们能帮帮我吗?
当我单击标记时,我的代码显示相同的文档。
我认为我的 for 循环有问题。 我正在创建停车位列表,单击时我将在模态底部表中显示停车位的详细信息 这是我的代码。
public class ParkingSpace extends AppCompatActivity implements OnMapReadyCallback{
private GoogleMap mMap;
Parking parking;
private FirebaseFirestore db = FirebaseFirestore.getInstance();
private CollectionReference parkingRef = db.collection("Parking Lots");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_parking_space);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.mapView);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(@NonNull GoogleMap googleMap) {
mMap = googleMap;
LatLng sydney = new LatLng(16.4023,120.5960);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney,14));
parkingRef.get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
for (QueryDocumentSnapshot documentSnapshot: queryDocumentSnapshots){
parking = documentSnapshot.toObject(Parking.class);
parking.setDocumentId(documentSnapshot.getId());
String lat = parking.getLatitude();
String lon = parking.getLongitude();
String title = parking.getparkingName();
String owner = parking.getName();
String documentId= parking.getDocumentId();
double latd = Double.parseDouble(lat);
double lond = Double.parseDouble(lon);
LatLng location = new LatLng(latd,lond);
mMap.addMarker(new MarkerOptions().snippet("Owner: " +owner).position(location).title(title));
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(@NonNull Marker marker) {
parking = documentSnapshot.toObject(Parking.class);
String path = documentSnapshot.getReference().getPath();
Toast.makeText(ParkingSpace.this, "Document ID:" +documentId, Toast.LENGTH_SHORT).show();
BottomSheet bottomSheet = new BottomSheet();
Bundle bundle = new Bundle();
bundle.putString("lat",lat);
bottomSheet.setArguments(bundle);
bottomSheet.show(getSupportFragmentManager(),"bottomsheet");
return false;
}
});
}
}
});
}
}
【问题讨论】:
标签: java android google-maps google-cloud-firestore