无法在Google地图上显示GroundOverlay

时间:2017-11-21 01:34:37

标签: java android google-maps

我在MapsActivity.java中有以下代码。我出于某种原因没有得到任何东西。我无法弄清楚出了什么问题。

public class MapsActivity extends AppCompatActivity
    implements  OnMapReadyCallback {

    private double Lat;
    private double Lng;

    private GoogleMap mMap;

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

    @Override   
    public void onMapReady(GoogleMap map) {
        mMap = map;
        LatLng NEWARK = new LatLng(45.384801, -75.697383);

        GroundOverlayOptions newarkMap = new GroundOverlayOptions()
                .image(BitmapDescriptorFactory.fromResource(R.drawable.mackenzie))
                .position(NEWARK, 8600f, 6500f);
        mMap.addGroundOverlay(newarkMap);
    }
}

1 个答案:

答案 0 :(得分:0)

您在getMapAsync()onCreate()从未通话时错过onMapReady()来电。您的完整代码MapsActivity.java应该是:

public class MapsActivity extends AppCompatActivity implements OnMapReadyCallback {

    private GoogleMap mGoogleMap;
    private MapFragment mapFragment;

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

        mapFragment = (MapFragment) getFragmentManager()
                .findFragmentById(R.id.map_fragment);
        mapFragment.getMapAsync(this);
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mGoogleMap = googleMap;

        LatLng NEWARK = new LatLng(45.384801, -75.697383);

    GroundOverlayOptions newarkMap = new GroundOverlayOptions()
            .image(BitmapDescriptorFactory.fromResource(R.drawable.mackenzie))
            .position(NEWARK, 8600f, 6500f);

        mGoogleMap.addGroundOverlay(newarkMap);
    }

}

activity_maps.hml喜欢:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="<your_package_name>.MapsActivity">

    <fragment
        android:id="@+id/map_fragment"
        android:name="com.google.android.gms.maps.MapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</RelativeLayout>

并且不要忘记Manifest中的Google Maps API密钥。