Android MapView display empty

扶醉桌前 提交于 2019-12-03 13:01:11

The way I got mine resolved, I had to do this:

final MapView mapView = (MapView)fragmentView.findViewById(R.id.map_fieldLocation);

mapView.onCreate(savedInstanceState);
mapView.getMapAsync(new OnMapReadyCallback() {

    @Override
    public void onMapReady(GoogleMap googleMap) {
        LatLng coordinates = new LatLng(match.match.LocationLatitude, match.match.LocationLongitude);
        googleMap.addMarker(new MarkerOptions().position(coordinates).title(match.match.LocationAddress));
        googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(coordinates, 15));
        mapView.onResume();
    }
});

The important part that I was missing is that you have to call the onCreate() method before you call getMapAsync() and once the callback is called, you need to call onResume() on the MapView object.

That totally solved it for me.

Here's what it would look like in your own class:

public class MainActivity extends MapActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        if (getView() != null) {

            final MapView mapView = (MapView)getView().findViewById(R.id.mapView);

            mapView.onCreate(savedInstanceState);
            mapView.getMapAsync(new OnMapReadyCallback() {

                @Override
                public void onMapReady(GoogleMap googleMap) {
                    LatLng coordinates = new LatLng(match.match.LocationLatitude, match.match.LocationLongitude);
                    googleMap.addMarker(new MarkerOptions().position(coordinates).title(match.match.LocationAddress));
                    googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(coordinates, 15));
                    mapView.onResume();
                }
            }
        }
    }

    @Override
    protected boolean isRouteDisplayed() {
        // TODO Auto-generated method stub
        return false;
    }

}

Hope this helps!

I guess you are making a mess from the version of Google Maps you are trying to implement. From the code that is used by you it's seems that you are trying to use Google Maps API V1.

The problem with that is that you can't produce now days a new API key for Google Map API V1, this version is deprecated and Google doesn't provide new keys for it.

from the comments it's looks that in the API Console you didn't activated the right API. Take a look at this blog post to get an Idea of how to produce an API Key for Google Map API V2 for Android:

Google Maps API V2 Key

Next, go over the following guide to implement this version in you application:

Google Maps API V2

Use Map API V2 for google map in android. Visit this link may be helps you.

It is better than old version and easier too.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!