1

尝试做一个地图示例,我在这里找到 http://codemagician.wordpress.com/2010/05/06/android-google-mapview-tutorial-done-right/

问题是这段代码。具体来说,编译器似乎不知道 MapView 是什么?其实也适用于android.graphics.drawable.Drawable。我认为 import 语句可以解决这个问题,但必须缺少其他一些设置步骤。

任何帮助表示赞赏。

package com.example.HelloGoogleMaps2;
import java.util.List;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;

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

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

     List<Overlay> mapOverlays = mapView.getOverlays();
     **Drawable** drawable = this.getResources().getDrawable(R.drawable.icon);
     HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable,this);
     GeoPoint point = new GeoPoint(30443769,-91158458);
     OverlayItem overlayitem = new OverlayItem(point, "Laissez les bon temps rouler!", "I'm in Louisiana!");

     GeoPoint point2 = new GeoPoint(17385812,78480667);
     OverlayItem overlayitem2 = new OverlayItem(point2, "Namashkaar!", "I'm in Hyderabad, India!");

     itemizedoverlay.addOverlay(overlayitem);
     itemizedoverlay.addOverlay(overlayitem2);

     mapOverlays.add(itemizedoverlay);
 }
 @Override
 protected boolean isRouteDisplayed()
 {
 return false;
 }
}
4

1 回答 1

1

创建新项目时检查您的目标设备。它应该是Google APIs(Google Inc.)-API Level -(无论你想要什么)。

正如文档所说:“您必须AVD配置使用Google APIs目标,或者使用包含Maps library“的开发设备。并确保您具有 Internet 权限

<uses-permission android:name="android.permission.INTERNET"/>

并且由于 MapView 不包含在默认的 Android 库中,因此您需要在 AndroidManifest.xml 中指定

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

是从谷歌地图开始的好地方

你确定你有选择谷歌API

于 2012-05-21T18:40:10.777 回答