android应用程序的地图未显示

android应用程序的地图未显示,android,api,google-maps,Android,Api,Google Maps,我看不到我活动中的地图 运行应用程序时,我在控制台上遇到此错误 我做过的事情: 已为谷歌地图启用API 从debug.keystore获取SHA1指纹 添加了包名为的SHA1指纹 将API密钥放入清单中 你认为有什么问题?请帮帮我 07-03 01:54:50.278: D/dalvikvm(374): GC_CONCURRENT freed 376K, 48% free 3040K/5831K, external 716K/1038K, paused 3ms+2ms 07-03 01:54:5

我看不到我活动中的地图

运行应用程序时,我在控制台上遇到此错误

我做过的事情: 已为谷歌地图启用API 从debug.keystore获取SHA1指纹 添加了包名为的SHA1指纹 将API密钥放入清单中

你认为有什么问题?请帮帮我

07-03 01:54:50.278: D/dalvikvm(374): GC_CONCURRENT freed 376K, 48% free 3040K/5831K, external 716K/1038K, paused 3ms+2ms 07-03 01:54:50.588: D/dalvikvm(374): GC_CONCURRENT freed 576K, 50% free 3021K/6023K, external 716K/1038K, paused 2ms+3ms 07-03 01:54:50.748: D/dalvikvm(374): GC_CONCURRENT freed 309K, 47% free 3218K/6023K, external 723K/1038K, paused 2ms+3ms 07-03 01:54:50.878: I/MapActivity(374): Handling network change notification:CONNECTED 07-03 01:54:50.878: E/MapActivity(374): Couldn't get connection factory client 07-03 01:54:50.968: D/dalvikvm(374): GC_EXTERNAL_ALLOC freed 228K, 50% free 3055K/6023K, external 871K/1038K, paused 51ms 07-03 01:54:51.558: W/System.err(374): IOException processing: 26 07-03 01:54:51.558: W/System.err(374): java.io.IOException: Server returned: 3 07-03 01:54:51.558: W/System.err(374): at android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115) 07-03 01:54:51.558: W/System.err(374): at android_maps_conflict_avoidance.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.java:1473) 07-03 01:54:51.558: W/System.err(374): at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.java:1117) 07-03 01:54:51.558: W/System.err(374): at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.java:994) 07-03 01:54:51.558: W/System.err(374): at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.java:1702) 07-03 01:54:51.558: W/System.err(374): at java.lang.Thread.run(Thread.java:1019) 07-03 01:54:51.958: W/System.err(374): IOException processing: 26 07-03 01:54:51.968: W/System.err(374): java.io.IOException: Server returned: 3 07-03 01:54:51.968: W/System.err(374): at android_maps_conflict_avoidance.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115) 07-03 01:54:51.968: W/System.err(374): at android_maps_conflict_avoidance.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.java:1473) 07-03 01:54:51.968: W/System.err(374): at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.java:1117) 07-03 01:54:51.968: W/System.err(374): at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.java:994) 07-03 01:54:51.968: W/System.err(374): at android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.java:1702) 07-03 01:54:51.968: W/System.err(374): at java.lang.Thread.run(Thread.java:1019) 7-03 01:54:50.278:D/dalvikvm(374):GC_并发释放376K,48%释放3040K/5831K,外部716K/1038K,暂停3ms+2ms 7-03 01:54:50.588:D/dalvikvm(374):GC_并发释放576K,50%释放3021K/6023K,外部716K/1038K,暂停2ms+3ms 07-03 01:54:50.748:D/dalvikvm(374):GC_并发释放309K,47%释放3218K/6023K,外部723K/1038K,暂停2ms+3ms 07-03 01:54:50.878:I/MapActivity(374):处理网络更改通知:已连接 07-03 01:54:50.878:E/MapActivity(374):无法获取连接工厂客户端 7-03 01:54:50.968:D/dalvikvm(374):GC_外部所有释放228K,50%释放3055K/6023K,外部871K/1038K,暂停51ms 07-03 01:54:51.558:W/System.err(374):IOException处理:26 07-03 01:54:51.558:W/System.err(374):java.io.IOException:返回的服务器:3 07-03 01:54:51.558:W/System.err(374):在android_maps_conflict_avoidation.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115) 07-03 01:54:51.558:W/System.err(374):在android_maps_conflict_avoidation.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.java:1473) 07-03 01:54:51.558:W/System.err(374):在android_maps_conflict_avoidation.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.java:1117) 07-03 01:54:51.558:W/System.err(374):在android_maps_conflict_avoidation.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.java:994) 07-03 01:54:51.558:W/System.err(374):在android_maps_conflict_avoidation.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.java:1702) 07-03 01:54:51.558:W/System.err(374):at java.lang.Thread.run(Thread.java:1019) 07-03 01:54:51.958:W/System.err(374):IOException处理:26 07-03 01:54:51.968:W/System.err(374):java.io.IOException:服务器返回:3 07-03 01:54:51.968:W/System.err(374):在android_maps_conflict_avoidation.com.google.googlenav.map.BaseTileRequest.readResponseData(BaseTileRequest.java:115) 07-03 01:54:51.968:W/System.err(374):在android_maps_conflict_avoidation.com.google.googlenav.map.MapService$MapTileRequest.readResponseData(MapService.java:1473) 07-03 01:54:51.968:W/System.err(374):在android_maps_conflict_avoidation.com.google.googlenav.datarequest.DataRequestDispatcher.processDataRequest(DataRequestDispatcher.java:1117) 07-03 01:54:51.968:W/System.err(374):在android_maps_conflict_avoidation.com.google.googlenav.datarequest.DataRequestDispatcher.serviceRequests(DataRequestDispatcher.java:994) 07-03 01:54:51.968:W/System.err(374):在android_maps_conflict_avoidation.com.google.googlenav.datarequest.DataRequestDispatcher$DispatcherServer.run(DataRequestDispatcher.java:1702) 07-03 01:54:51.968:W/System.err(374):在java.lang.Thread.run(Thread.java:1019)处 代码如下:

    // RouteTracker.java
// Main MapActivity for the RouteTracker app.
package com.deitel.routetracker;

import android.app.AlertDialog;
import android.content.Context;
import android.location.Criteria;
import android.location.GpsStatus;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.PowerManager;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.FrameLayout;
import android.widget.Toast;
import android.widget.ToggleButton;

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 RouteTracker extends MapActivity 
{
   private LocationManager locationManager; // gives location data
   private MapView mapView; // displays a Google map
   private MapController mapController; // manages map pan/zoom
   private Location previousLocation; // previous reported location
   private RouteOverlay routeOverlay; // Overlay that shows route on map
   private long distanceTraveled; // total distance the user traveled
   private BearingFrameLayout bearingFrameLayout; // rotates the MapView
   private boolean tracking; // whether app is currently tracking
   private long startTime; // time (in milliseconds) when tracking starts
   private PowerManager.WakeLock wakeLock; // used to prevent device sleep
   private boolean gpsFix; // whether we have a GPS fix for accurate data

   private static final double MILLISECONDS_PER_HOUR = 1000 * 60 * 60;
   private static final double MILES_PER_KILOMETER = 0.621371192;
   private static final int MAP_ZOOM = 18; // Google Maps supports 1-21

   // Called when the activity is first created
   @Override
   public void onCreate(Bundle savedInstanceState) 
   {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);

      // create new MapView using your Google Maps API key
      bearingFrameLayout = new BearingFrameLayout(this, 
         getResources().getString(R.string.google_maps_api_key));

      // add bearingFrameLayout to mainLayout
      FrameLayout mainLayout = 
         (FrameLayout) findViewById(R.id.mainLayout);
      mainLayout.addView(bearingFrameLayout, 0);

      // get the MapView and MapController
      mapView = bearingFrameLayout.getMapview();
      mapController = mapView.getController(); // get MapController
      mapController.setZoom(MAP_ZOOM); // zoom in the map

      // create map Overlay
      routeOverlay = new RouteOverlay(); 

      // add the RouteOverlay overlay
      mapView.getOverlays().add(routeOverlay);

      distanceTraveled = 0; // initialize distanceTraveled to 0

      // register listener for trackingToggleButton
      ToggleButton trackingToggleButton = 
         (ToggleButton) findViewById(R.id.trackingToggleButton);
      trackingToggleButton.setOnCheckedChangeListener(
         trackingToggleButtonListener);
   } // end onCreate

   // called when Activity becoming visible to the user
   @Override
   public void onStart() 
   {
      super.onStart(); // call super's onStart method

      // create Criteria object to specify location provider's settings
      Criteria criteria = new Criteria(); 
      criteria.setAccuracy(Criteria.ACCURACY_FINE); // fine location data
      criteria.setBearingRequired(true); // need bearing to rotate map
      criteria.setCostAllowed(true); // OK to incur monetary cost
      criteria.setPowerRequirement(Criteria.POWER_LOW); // try to conserve
      criteria.setAltitudeRequired(false); // don't need altitude data

      // get the LocationManager
      locationManager = 
         (LocationManager) getSystemService(LOCATION_SERVICE);

      // register listener to determine whether we have a GPS fix
      locationManager.addGpsStatusListener(gpsStatusListener);

      // get the best provider based on our Criteria
      String provider = locationManager.getBestProvider(criteria, true);

      // listen for changes in location as often as possible
      locationManager.requestLocationUpdates(provider, 0, 0,
          locationListener);

      // get the app's power manager
      PowerManager powerManager = 
         (PowerManager) getSystemService(Context.POWER_SERVICE);

      // get a wakelock preventing the device from sleeping
      wakeLock = powerManager.newWakeLock(
         PowerManager.PARTIAL_WAKE_LOCK, "No sleep");
      wakeLock.acquire(); // acquire the wake lock

      bearingFrameLayout.invalidate(); // redraw the BearingFrameLayout
   } // end method onStart

   // called when Activity is no longer visible to the user
   @Override
   public void onStop()
   {
      super.onStop(); // call the super method
      wakeLock.release(); // release the wakelock
   } // end method onStop

   // update location on map   
   public void updateLocation(Location location) 
   {
      if (location != null && gpsFix) // location not null; have GPS fix
      {
         // add the given Location to the route
         routeOverlay.addPoint(location); 

         // if there is a previous location
         if (previousLocation != null) 
         {
            // add to the total distanceTraveled
            distanceTraveled += location.distanceTo(previousLocation);
         } // end if

         // get the latitude and longitude
         Double latitude = location.getLatitude() * 1E6;
         Double longitude = location.getLongitude() * 1E6;

         // create GeoPoint representing the given Locations
         GeoPoint point = 
            new GeoPoint(latitude.intValue(), longitude.intValue());

         // move the map to the current location
         mapController.animateTo(point);

         // update the compass bearing
         bearingFrameLayout.setBearing(location.getBearing());
         bearingFrameLayout.invalidate(); // redraw based on bearing
      } // end if

      previousLocation = location;
   } // end method updateLocation

   // responds to events from the LocationManager
   private final LocationListener locationListener = 
      new LocationListener() 
   {
      // when the location is changed
      public void onLocationChanged(Location location) 
      {
         gpsFix = true; // if getting Locations, then we have a GPS fix

         if (tracking) // if we're currently tracking
            updateLocation(location); // update the location
      } // end onLocationChanged

      public void onProviderDisabled(String provider) 
      {
      } // end onProviderDisabled

      public void onProviderEnabled(String provider) 
      {
      } // end onProviderEnabled

      public void onStatusChanged(String provider, 
         int status, Bundle extras) 
      {
      } // end onStatusChanged
   }; // end locationListener

   // determine whether we have GPS fix
   GpsStatus.Listener gpsStatusListener = new GpsStatus.Listener() 
   {
      public void onGpsStatusChanged(int event) 
      {
         if (event == GpsStatus.GPS_EVENT_FIRST_FIX) 
         {
            gpsFix = true;
            Toast results = Toast.makeText(RouteTracker.this, 
               getResources().getString(R.string.toast_signal_acquired), 
               Toast.LENGTH_SHORT);

            // center the Toast in the screen
            results.setGravity(Gravity.CENTER, 
               results.getXOffset() / 2, results.getYOffset() / 2);     
            results.show(); // display the results
         } // end if
      } // end method on GpsStatusChanged
   }; // end anonymous inner class

   // Google terms of use require this method to return
   // true if you're displaying route information like driving directions
   @Override
   protected boolean isRouteDisplayed() 
   {
      return false; // we aren't displaying route information
   } // end method isRouteDisplayed

   // create the Activity's menu from a menu resource XML file
   @Override
   public boolean onCreateOptionsMenu(Menu menu) 
   {
      super.onCreateOptionsMenu(menu);
      MenuInflater inflater = getMenuInflater();
      inflater.inflate(R.menu.route_tracker_menu, menu);
      return true;
   } // end method onCreateOptionsMenu

   // handle choice from options menu
   @Override
   public boolean onOptionsItemSelected(MenuItem item) 
   {
      // perform appropriate task based on 
      switch (item.getItemId()) 
      {
         case R.id.mapItem: // the user selected "Map"
            mapView.setSatellite(false); // display map image
            return true;
         case R.id.satelliteItem: // the user selected "Satellite"
            mapView.setSatellite(true); // display satellite image
            return true;
         default:
            return super.onOptionsItemSelected(item);
      } // end switch
   } // end method onOptionsItemSelected

   // listener for trackingToggleButton's events
   OnCheckedChangeListener trackingToggleButtonListener = 
      new OnCheckedChangeListener()
      {
         // called when user toggles tracking state
         @Override
         public void onCheckedChanged(CompoundButton buttonView,
            boolean isChecked)
         { 
            // if app is currently tracking
            if (!isChecked)
            {
               tracking = false; // just stopped tracking locations

               // compute the total time we were tracking
               long milliseconds = System.currentTimeMillis() - startTime;
               double totalHours = milliseconds / MILLISECONDS_PER_HOUR;

               // create a dialog displaying the results
               AlertDialog.Builder dialogBuilder = 
                  new AlertDialog.Builder(RouteTracker.this);
               dialogBuilder.setTitle(R.string.results);

               double distanceKM = distanceTraveled / 1000.0;
               double speedKM = distanceKM / totalHours;
               double distanceMI = distanceKM * MILES_PER_KILOMETER;
               double speedMI = distanceMI / totalHours;

               // display distanceTraveled traveled and average speed
               dialogBuilder.setMessage(String.format(
                  getResources().getString(R.string.results_format), 
                  distanceKM, distanceMI, speedKM, speedMI));
               dialogBuilder.setPositiveButton(
                  R.string.button_ok, null);
               dialogBuilder.show(); // display the dialog
            } // end if
            else  
            {   
               tracking = true; // app is now tracking
               startTime = System.currentTimeMillis(); // get current time
               routeOverlay.reset(); // reset for new route
               bearingFrameLayout.invalidate(); // clear the route
               previousLocation = null; // starting a new route
            } // end else
         } // end method onCheckChanged
      }; // end anonymous inner class    
} // end class RouteTracker

// RouteOverlay.java
// Draws route on MapView.
package com.deitel.routetracker;

import java.util.ArrayList;
import java.util.List;

import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Point;
import android.location.Location;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;

public class RouteOverlay extends Overlay 
{
   private List<Location> locations; // stores Location tracking data
   private Paint pathPaint; // Paint information for the Path
   private Paint positionPaint; // Paint information for current position
   private final int POSITION_MARKER = 10; // marker frequency

   public RouteOverlay() 
   {
      // Paint for drawing Path as a red line with a width of 5
      pathPaint = new Paint();
      pathPaint.setAntiAlias(true);
      pathPaint.setColor(Color.RED);
      pathPaint.setStyle(Paint.Style.STROKE);
      pathPaint.setStrokeWidth(5);
      locations = new ArrayList<Location>(); // initialize points

      // Paint for drawing black circle every POSITION_MARKER Locations
      positionPaint = new Paint();
      positionPaint.setAntiAlias(true);
      positionPaint.setStyle(Paint.Style.FILL);
   } // end RouteOverlay constructor

   // add new Location to List of Locations
   public void addPoint(Location location) 
   {
      locations.add(location);
   } // end method addPoint

   // reset the Overlay for tracking a new route
   public void reset()
   {
      locations.clear(); // delete all prior Locations
   } // end method reset

   // draw this Overlay on top of the given MapView
   @Override
   public void draw(Canvas canvas, MapView mapView, boolean shadow) 
   {
      super.draw(canvas, mapView, shadow); // call super's draw method
      Path newPath = new Path(); // get a new Path
      Location previous = null; // initialize previous Location to null

      // for each Location
      for (int i = 0; i < locations.size(); ++i) 
      {
         Location location = locations.get(i);

         // convert Location to GeoPoint
         Double newLatitude = location.getLatitude() * 1E6;
         Double newLongitude = location.getLongitude() * 1E6;
         GeoPoint newPoint = new GeoPoint(newLatitude.intValue(),
            newLongitude.intValue());

         // convert the GeoPoint to point on the screen
         Point newScreenPoints = new Point();
         mapView.getProjection().toPixels(newPoint, newScreenPoints);

         if (previous != null) // if this is not the first Location
         {
            // get GeoPoint for the previous Location
            Double oldLatitude = previous.getLatitude() * 1E6;
            Double oldLongitude = previous.getLongitude() * 1E6;
            GeoPoint oldPoint = new GeoPoint(oldLatitude.intValue(),
               oldLongitude.intValue());

            // convert the GeoPoint to point on the screen
            Point oldScreenPoints = new Point();
            mapView.getProjection().toPixels(oldPoint, oldScreenPoints);

            // add the new point to the Path
            newPath.quadTo(oldScreenPoints.x, oldScreenPoints.y,
               (newScreenPoints.x + oldScreenPoints.x) / 2,
               (newScreenPoints.y + oldScreenPoints.y) / 2);

            // possibly draw a black dot for current position 
            if ((i % POSITION_MARKER) == 0)
               canvas.drawCircle(newScreenPoints.x, newScreenPoints.y, 10, 
                  positionPaint);
         } // end if
         else 
         {
            // move to the first Location
            newPath.moveTo(newScreenPoints.x, newScreenPoints.y);
         } // end else

         previous = location; // store location
      } // end for

      canvas.drawPath(newPath, pathPaint); // draw the path
   } // end method draw
} // end class RouteOverlay




// BearingFrameLayout.java
// Rotates MapView according to device's bearing.

    package com.deitel.routetracker;

import com.google.android.maps.MapView;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.view.Display;
import android.widget.FrameLayout;

public class BearingFrameLayout extends FrameLayout 
{
   private int scale = 0; // amount to scale layout
   private MapView mapView; // displays Google maps
   private float bearing = 0f; // compass bearing

   // returns layout parameters for MapView
   public LayoutParams getChildLayoutParams() 
   {
      Display display = 
         ((Activity) getContext()).getWindowManager().getDefaultDisplay();
      int w = display.getWidth();
      int h = display.getHeight();
      scale = (int) Math.sqrt((w * w) + (h * h));

      return new LayoutParams(scale, scale);
   } // end method getChildLayoutParams

   // public constructor for BearingFrameLayout
   public BearingFrameLayout(Context context, String apiKey) 
   {
      super(context); // call super constructor

      mapView = new MapView(context, apiKey); // create new MapView      
      mapView.setClickable(true); // allow user interactions with the map
      mapView.setEnabled(true); // enables the MapView to generate events
      mapView.setSatellite(false); // display map image
      mapView.setBuiltInZoomControls(true); // enable zoom controls

      // set MapView's layout
      mapView.setLayoutParams(getChildLayoutParams()); 
      addView(mapView); // add MapView to this layout
   } // end BearingFrameLayout constructor

   // rotates the map according to bearing
   @Override
   protected void dispatchDraw(Canvas canvas) 
   {
      if (bearing >= 0) // if the bearing is greater than 0
      {
         // get canvas dimensions
         int canvasWidth = canvas.getWidth();
         int canvasHeight = canvas.getHeight();

         // dimensions of the scaled canvas
         int width = scale;
         int height = scale;

         // center of scaled canvas
         int centerXScaled = width / 2;
         int centerYScaled = height / 2;

         // center of screen canvas
         int centerX = canvasWidth / 2;
         int centerY = canvasHeight / 2;

         // move center of scaled area to center of actual screen
         canvas.translate(-(centerXScaled - centerX), 
            -(centerYScaled - centerY));

         // rotate around center of screen
         canvas.rotate(-bearing, centerXScaled, centerYScaled);
      } // end if

      super.dispatchDraw(canvas); // draw child Views of this layout
   } // end method dispatchDraw

   // set the compass bearing
   public void setBearing(float bearing) 
   {
      this.bearing = bearing;
   } // end method setCompassBearing

   // return the MapView
   public MapView getMapview() 
   {
      return mapView;
   } // end method getMapView
} // end class BearingFrameLayout
//RouteTracker.java
//RouteTracker应用程序的主映射活动。
包com.deitel.routetracker;
导入android.app.AlertDialog;
导入android.content.Context;
导入android.location.Criteria;
导入android.location.GpsStatus;
导入android.location.location;
导入android.location.LocationListener;
导入android.location.LocationManager;
导入android.os.Bundle;
导入android.os.PowerManager;
导入android.view.Gravity;
导入android.view.Menu;
导入android.view.MenuInflater;
导入android.view.MenuItem;
导入android.widget.CompoundButton;
导入android.widget.CompoundButton.OnCheckedChangeListener;
导入android.widget.FrameLayout;
导入android.widget.Toast;
导入android.widget.ToggleButton;
导入com.google.android.maps.GeoPoint;
导入com.google.android.maps.MapActivity;
导入com.google.android.maps.MapController;
导入com.google.android.maps.MapView;
公共类RouteTracker扩展了MapActivity
{
专用LocationManager LocationManager;//提供位置数据
private MapView MapView;//显示谷歌地图
私有MapController MapController;//管理地图平移/缩放
私有位置previousLocation;//以前报告的位置
private RouteOverlay RouteOverlay;//在地图上显示路线的覆盖图
私人长途旅行;//用户旅行的总距离
private BearingFrameLayout BearingFrameLayout;//旋转地图视图
私有布尔跟踪;//应用程序当前是否正在跟踪
private long startTime;//跟踪开始时的时间(毫秒)
private PowerManager.WakeLock WakeLock;//用于防止设备睡眠
私有布尔gpsFix;//我们是否有精确数据的GPS定位
专用静态最终双毫秒每小时=1000*60*60;
私人静态最终双英里每公里=0.621371192;
私有静态最终int-MAP_ZOOM=18;//谷歌地图支持1-21
//首次创建活动时调用
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//使用Google Maps API密钥创建新的地图视图
bearingFrameLayout=新的bearingFrameLayout(此,
getResources().getString(R.string.google_maps_api_key));
//将bearingFrameLayout添加到mainLayout
FrameLayout主布局=
(框架布局)findViewById(R.id.mainLayout);
mainLayout.addView(bearingFrameLayout,0);
//获取MapView和MapController
mapView=bearingFrameLayout.getMapview();
mapController=mapView.getController();//获取mapController
mapController.setZoom(MAP_ZOOM);//放大地图
//创建地图覆盖
路由覆盖