我完全按照谷歌的MapView教程但它只显示谷歌地图的空白页面。这是我的代码。
我的地图xml:
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:apiKey="API_KEY"
/>
其班级:
public class Maps extends MapActivity {
@Override
protected boolean isRouteDisplayed() {
return false;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
MapView mapView = (MapView) findViewById(R.id.mapView);
mapView.setBuiltInZoomControls(true);
List<Overlay> mapOverlays = mapView.getOverlays();
Drawable drawable = this.getResources().getDrawable(R.drawable.logo);
ItemOverlay itemizedoverlay = new ItemOverlay(drawable, this);
GeoPoint point = new GeoPoint(19240000,-99120000);
OverlayItem overlayitem = new OverlayItem(point, "Hola, Mundo!", "I'm in Mexico City!");
itemizedoverlay.addOverlay(overlayitem);
mapOverlays.add(itemizedoverlay);
}
}
最后是逐项列表的覆盖类:
public class ItemOverlay extends ItemizedOverlay {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
Context mContext;
public ItemOverlay(Drawable defaultMarker, Context context) {
super(boundCenterBottom(defaultMarker));
mContext = context;
}
public void addOverlay(OverlayItem overlay) {
mOverlays.add(overlay);
populate();
}
@Override
protected OverlayItem createItem(int i) {
return mOverlays.get(i);
}
@Override
public int size() {
return mOverlays.size();
}
@Override
protected boolean onTap(int index) {
OverlayItem item = mOverlays.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
return true;
}
}
因此,这会产生错误,并且只会显示&#39;徽标&#39;在一个空白的谷歌地图页面。这也是我的明显权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application ... >
<uses-library android:name="com.google.android.maps"/>
<application />
我错过了什么?可能是什么问题,提前谢谢顺便说一下,我在console.developers.google.com上为浏览器应用程序创建了一个api密钥,该应用程序具有google maps v3的权限。
答案 0 :(得分:1)
您似乎正在使用明显已弃用的Google Map V1
。您现在应切换到Google Map V2以使用地图功能。
注意:截至2012年12月3日,Google Maps Android API版本1已正式弃用。这意味着从2013年3月18日起,您将无法再为此版本请求API密钥。 Google Maps Android API v1不会添加任何新功能。但是,使用v1的应用程序将继续在设备上运行。鼓励现有和新开发人员使用Google Maps Android API v2。
答案 1 :(得分:0)