【问题标题】:Google maps show multiple markers from firebase谷歌地图显示来自 Firebase 的多个标记
【发布时间】:2017-12-04 21:11:11
【问题描述】:

我的代码允许我输入带有纬度和经度的位置名称,然后地图会用标记显示该位置。

我遇到的问题是我希望地图显示所有位置,每个位置在地图上都有自己的标记。

下面是我用来获取地图上显示的一个位置的代码

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 的一个位置

【问题讨论】:

    标签: java android google-maps google-maps-api-3 android-studio-3.0


    【解决方案1】:
       Marker marker;
    List<Venue> venueList;
    

    //在onCreate方法中 场地列表 = 新的 ArrayList();

        mVenues.push().setValue(marker);
    

    //onMaps准备方法

    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));
                                                }
                    }
                }
    
            }
    

    【讨论】:

      猜你喜欢
      • 2019-08-19
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      • 2018-10-04
      • 2020-06-08
      • 2017-11-04
      • 1970-01-01
      相关资源
      最近更新 更多