在此代码中我有一些问题,在这里我无法访问谷歌地图,方框发生代替地图。任何人都可以帮我解决这个问题。
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>
答案 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的博文: