Android谷歌地图基本地图

时间:2017-03-31 19:58:00

标签: android google-maps

我试图在我的一个活动上显示一个非常基本的MapView,但是,我的MapView永远是空白的,从不加载任何地图。所述MapView只是一个200px高度的活动,具有其他元素。我没有从向导中创建Map活动。

我的清单有:

<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />

<!--
     The API key for Google Maps-based APIs.
-->
<meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="my real code" />

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

我的build.gradle具有依赖关系:

compile 'com.google.android.gms:play-services-maps:10.2.1'

我的AndroidStudio有GooglePlay包。你知道我错过了吗?

这是我的mapView的xml代码:

<LinearLayout
    android:id="@+id/geolocationLinearLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/textView4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:text="Geolocation"
        android:textStyle="bold|italic" />

    <com.google.android.gms.maps.MapView
        android:id="@+id/mapView"
        android:layout_width="match_parent"
        android:layout_height="200dp" />
</LinearLayout>

这是我的活动java类地图声明和加载:

声明:

MapView mapView;
GoogleMap map;
static final LatLng HAMBURG = new LatLng(53.558, 9.927);

在OnCreateView中:

mapView = (MapView) view.findViewById(R.id.mapView);
mapView.getMapAsync(new OnMapReadyCallback() {
    @Override
    public void onMapReady(GoogleMap googleMap) {
        map = googleMap;
        map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15));
    }
});

1 个答案:

答案 0 :(得分:1)

注意:我假设您有有效的密钥

mapView = (MapView) view.findViewById(R.id.mapView);     
mapView .onCreate(null);
mapView.getMapAsync(...)

并且还使用下面所需的其他方法,请参阅下面的文档了解所有方法

@Override
public void onResume() {
    super.onResume();
    mapView .onResume();
}