我在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);
}
}
答案 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密钥。