我的代码允许我输入具有纬度和经度的位置名称,然后地图用标记显示位置。
我遇到的问题是我希望地图显示所有位置,每个位置在地图上都有自己的标记。
以下是我用于在地图上显示一个位置的代码
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
googleMap.setOnMarkerClickListener(this);
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
mVenues.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot s : dataSnapshot.getChildren()){
Venue venue = s.getValue(Venue.class);
LatLng location=new LatLng(venue.venueLat,venue.venueLong);
mMap.addMarker(new MarkerOptions().position(location).title(venue.venueName)).setIcon(BitmapDescriptorFactory.defaultMarker());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
任何帮助都是非常苛刻的
我没有错误只显示我添加到firebasedatabase的一个位置
答案 0 :(得分:0)
Marker marker;
List<Venue> venueList;
//在onCreate方法中 venueList = new ArrayList&lt;&gt;();
mVenues.push().setValue(marker);
// onMaps ready方法
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
mVenues.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot s : dataSnapshot.getChildren()){
Venue venue = s.getValue(Venue.class);
venueList.add(venue);
for (int i = 0; i < venueList.size(); i++)
{
LatLng latLng = new LatLng(venue.venueLat,venue.venueLong);
if (mMap != null) {
marker = mMap.addMarker(new MarkerOptions().position(latLng).title(venue.venueName));
}
}
}
}