无法在地图活动中查看googlemap

时间:2016-12-15 22:59:38

标签: android google-maps google-maps-markers google-maps-android-api-2

我正在尝试构建基于位置的MAP应用程序,当我尝试执行我的应用程序时,我可以查看添加到Mapsactivity的我的标记,但是我没有在活动上映射

我可以确认我为我的活动提供了正确的地图密钥,以便从console.developer.com获取密钥并启用Google Maps for Android API

请说明这里可能出现的问题

MapsActivity

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

private GoogleMap mMap;
private final String TAG = "MapActivity";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);
    Log.d(TAG, "inside create Fragment");

    // Obtain the SupportMapFragment and get notified when the map is ready to be used.
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);
    Log.d(TAG, "outside create Fragment");
}

@Override
public void onMapReady(GoogleMap map) {
    SharedPreferences preferences= PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
    Double mLat = Double.parseDouble(preferences.getString("latitude",""));
    Double mLon = Double.parseDouble(preferences.getString("longtitude",""));
    Log.d(TAG, preferences.getString("latitude",""));
    Log.d(TAG, preferences.getString("longtitude",""));
    map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(mLat,mLon), 20));
    map.addMarker(new MarkerOptions().position(new LatLng(mLat,mLon)));
    //map.setMyLocationEnabled(true);
}

}

Android Manifest

<?xml version="1.0" encoding="utf-8"?>

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

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

    <activity android:name=".MyGames"/>

    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/google_maps_key"/>

    <activity
        android:name=".MapsActivity"
        android:label="@string/title_activity_maps">
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.example.android.wesport.MainActivity"/>
    </activity>
</application>

Activity_maps.xml

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:map="http://schemas.android.com/apk/res-auto"
      xmlns:tools="http://schemas.android.com/tools"
      android:id="@+id/map"
      android:name="com.google.android.gms.maps.SupportMapFragment"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      tools:context=".MapsActivity"/>

来自模拟器的图像  ![Image from Emulator

1 个答案:

答案 0 :(得分:1)

可能你在地图上显示沙漠。

尝试更改:

map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(mLat,mLon), 20));

map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(mLat, mLon), 5));