无法在Android程序中访问谷歌地图

时间:2013-06-24 11:29:40

标签: android google-maps

在此代码中我有一些问题,在这里我无法访问谷歌地图,方框发生代替地图。任何人都可以帮我解决这个问题。

GPSApp.java类

包com.android.gpsapp;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;

 public class GPSApp extends MapActivity
 {
  MapView mapView; 
  MapController mc;
  GeoPoint p;

 @Override
 public void onCreate(Bundle savedInstanceState) 
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mapView = (MapView) findViewById(R.id.mapView);
    mapView.setBuiltInZoomControls(true);

    LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom);  
    View zoomView = mapView.getZoomControls(); 

    zoomLayout.addView(zoomView, new LinearLayout.LayoutParams(MapView.LayoutParams.WRAP_CONTENT, MapView.LayoutParams.WRAP_CONTENT)); 

    mapView.displayZoomControls(true);

    mc = mapView.getController();

    String coordinates[] = {"26.456435","80.330606"};
    double lat = Double.parseDouble(coordinates[0]);
    double lng = Double.parseDouble(coordinates[1]);

    p = new GeoPoint(
        (int) (lat * 1E6), 
        (int) (lng * 1E6));

    mc.animateTo(p);
    mc.setZoom(17); 
    mapView.invalidate();

    mapView.setSatellite(true);
    mapView.setStreetView(true);
    mapView.setTraffic(true);
}

  @Override
   protected boolean isRouteDisplayed() {
     // TODO Auto-generated method stub
      return false;
    }
 }

Main.xml和API_key我已经给出了

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

   <LinearLayout android:id="@+id/zoom" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    /> 

   <com.google.android.maps.MapView 
   android:id="@+id/mapView" 
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent" 
   android:enabled="true"
   android:clickable="true"
   android:apiKey="API_Key"
   /> 

</RelativeLayout>

AndroidManifes.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.android.gpsapp"
     android:versionCode="1"
     android:versionName="1.0">
    <application android:label="@string/app_name" >

    <uses-library android:name="com.google.android.maps" />

    <activity android:name="GPSApp" android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
   </application>
  <uses-permission android:name="android.permission.INTERNET" />
</manifest> 

3 个答案:

答案 0 :(得分:0)

尝试扩展FragmentActivity

public class Maps extends FragmentActivity {
    GoogleMap map;
    double lat;
    double lan;
    boolean flag = false;

    // private LocationManager lm;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mapptry);

        map = ((SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map)).getMap();
             }
        }

答案 1 :(得分:0)

您可以尝试将<uses-permission>移至<application>之前,因为Android过去常常对此类事情感到挑剔。

如果这没有帮助,请尝试在模拟器或设备上运行Maps应用程序。如果它出现同样的问题,那么问题在于您可以从Google下载地图信息。

如果地图应用程序有效,而您的应用程序没有,那么您的API密钥不正确,例如尝试在Maps V1应用程序上使用Maps V2 API密钥。您的代码已设置为Maps V1,您无法再获取Maps V1 API密钥。您应该考虑切换到使用Maps V2,因为地图V1已被正式弃用。

答案 2 :(得分:0)

我在这里可以想到的主要问题是,您正在尝试实施Google Maps API V1,而当前的Google Maps API版本为2.因此,您要么尝试将Google Maps API V2密钥用于Google Maps API在这种情况下V1会出现您描述的问题(没有地图,只有带缩放控件的方块)

如果您确实生成了一个API V1密钥(我真的怀疑......),那么问题可能与您在Google API控制台中定义应用程序的方式有关。

无论如何,我建议您转移到Google API v2,因为不推荐使用API​​ V1。

以下是我撰写的关于如何在您的应用中实施Google Maps API V2的博文:

Google Maps API V2