尽管没有错误,谷歌地图仍未到来

时间:2015-03-29 10:49:02

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

我正在尝试在模拟器中为给定的纬度和经度加载谷歌地图。

地图正在模拟器中加载,但没有标记即将到来,并且始终显示相同的视图。

我跟随tutorial。以下是我的代码。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
double latitude = getIntent().getDoubleExtra("lat", 0);
    double longitude = getIntent().getDoubleExtra("lng", 0);

    Log.d("Zumbare","lat value : "+latitude);
    Log.d("Zumbare","lng value : "+longitude);

    LatLng position = new LatLng(latitude, longitude);

    MarkerOptions options = new MarkerOptions();
    options.position(position);
    options.title("Position");
    options.snippet("Latitude:"+latitude+",Longitude:"+longitude);
    options.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN));


    SupportMapFragment fm = (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map);
    GoogleMap googleMap = fm.getMap();
    googleMap.setMyLocationEnabled(true);
    googleMap.getUiSettings().setMyLocationButtonEnabled(true);
    googleMap.getUiSettings().setZoomControlsEnabled(true);
    googleMap.getUiSettings().setCompassEnabled(true);

    googleMap.addMarker(options);
    CameraUpdate updatePosition = CameraUpdateFactory.newLatLng(position);
    CameraUpdate updateZoom = CameraUpdateFactory.zoomBy(4);
    googleMap.moveCamera(updatePosition);
    googleMap.animateCamera(updateZoom);

}

以下是我的清单文件。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.app.maptest.gmap" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <permission
        android:name="com.app.maptest.gmap.MAPS_RECEIVE"
        android:protectionLevel="signature"/>

    <uses-permission android:name="com.app.maptest.gmap.MAPS_RECEIVE"/>

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

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >

        </activity>

        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyCInpkx8MO-lD4AMR4aUYns3tVvUMjIH1k" />

        <activity
            android:name=".MainActivity2"
            android:label="@string/title_activity_main_activity2" >

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

有人可以帮到我解决问题的地方..

编辑:

是的,我正在取得一个城市的土地,而且这些日志正在变成......

1885-1885/com.app.maptest.gmap D/Zumbare﹕ lat value : 16.506174
03-29 16:20:54.602    1885-1885/com.app.maptest.gmap D/Zumbare﹕ lng value : 80.648015

EDIT2:

我正在使用android studio并在gradle文件中添加了google play服务,如下所示。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'
    compile 'com.google.android.gms:play-services:3.1.36'
}

1 个答案:

答案 0 :(得分:0)

我认为你所遵循的教程已经过时了。 play-services现在是6.5.87

请尝试逐步关注this,最后您的手机上会有地图。

MainAcitivity,示例代码:

public class MainActivity extends Activity {

    private static LatLng goodLatLng = new LatLng(37, -120);
    private GoogleMap googleMap;
    private EditText et_address, et_finalAddress;
    LatLng addressPos, finalAddressPos;
    Marker addressMarker;

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

        et_address = (EditText) findViewById(R.id.addressEditText);
        et_finalAddress = (EditText) findViewById(R.id.finalAddressEditText);


        // Initial Map
        try {

            if (googleMap == null) {
                googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
        // Put a dot on my current location
        googleMap.setMyLocationEnabled(true);
        googleMap.setIndoorEnabled(true);
        googleMap.setTrafficEnabled(true);
        // 3D building
        googleMap.setBuildingsEnabled(true);
        // Get zoom button
        googleMap.getUiSettings().setZoomControlsEnabled(true);

        Marker marker = googleMap.addMarker(new MarkerOptions()
                .position(goodLatLng)
                .title("Hello"));
    }

有关详细信息,请参阅我的github here

enter image description here