如何让我的谷歌地图放大到我当前的位置?

嗨,我想让我的地图放大到我当前的位置。 当前通过向仿真器发送lat和long来定义当前位置。 我该怎么做呢?

我目前的mapactivity.java

public class MapsActivity extends MapActivity { private MapView mapView; private MyLocationOverlay myLocOverlay; MapController mc; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mapactivity); initMap(); initMyLocation(); } /** * Initialise the map and adds the zoomcontrols to the LinearLayout. */ private void initMap() { mapView = (MapView) findViewById(R.id.mapView); View zoomView = mapView.getZoomControls(); LinearLayout myzoom = (LinearLayout) findViewById(R.id.zoom); myzoom.addView(zoomView); mapView.displayZoomControls(true); mapView.getController().setZoom(17); } /** * Initialises the MyLocationOverlay and adds it to the overlays of the map */ private void initMyLocation() { myLocOverlay = new MyLocationOverlay(this, mapView); myLocOverlay.enableMyLocation(); mapView.getOverlays().add(myLocOverlay); } @Override protected boolean isRouteDisplayed() { return false; } 

谢谢。

    您需要实现onLocationChanged()。 在我的代码中,我也在这里添加了叠加层。 您至少需要使用当前位置setCenter()

     public void onLocationChanged(Location location) { List overlays = mapView.getOverlays(); myLocOverlay = new MyLocationOverlay(this, mapView); overlays.add(myLocOverlay); myLocOverlay.enableMyLocation();* // definitely need what's below int lat = (int) (location.getLatitude() * 1E6); int lng = (int) (location.getLongitude() * 1E6); GeoPoint point = new GeoPoint(lat, lng); mc.setCenter(point); mapView.invalidate(); } 

    尝试在initMyLocation代码的末尾添加:

     controller = mapView.getController(); mMyLocOverlay.runOnFirstFix(new Runnable() { public void run() { controller.setZoom(17); controller.animateTo(mMyLocOverlay.getMyLocation()); } }); 

    您可以从initMap方法中删除此行:

     mapView.getController().setZoom(17); 

    如果有效,请告诉我

    GER

    由于您已拥有位置数据,因此可以创建LatLng对象/结构并直接在Map对象上使用此行:

     map.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15.0f)); 

    我使用的是Android Google Maps API v2