2013-04-18 95 views
2

这是代码Google Map Android API v1。我不知道转换为API v2。请帮帮我!将Google地图Android API v1中的代码转换为Google地图Android API v2?

FlatBack.java

public class FlatBack extends MapActivity { 
private MapView mapView; 
private MyLocationOverlay myLocationOverlay; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.map); 

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

    myLocationOverlay = new FixLocation(this, mapView); 

    mapView.getOverlays().add(myLocationOverlay); 
    mapView.postInvalidate(); 

    zoomToMyLocation(); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.map_toggle, menu); 
    return true; 
} 

public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case R.id.map: 
     if (mapView.isSatellite() == true) { 
      mapView.setSatellite(false); 
      mapView.setStreetView(true); 
     } 
     return true; 
    case R.id.sat: 
     if (mapView.isSatellite() == false) { 
      mapView.setSatellite(true); 
      mapView.setStreetView(false); 
     } 
     return true; 
    case R.id.both: 
     mapView.setSatellite(true); 
     mapView.setStreetView(true); 
    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    myLocationOverlay.enableMyLocation(); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 
    myLocationOverlay.disableMyLocation(); 
} 

private void zoomToMyLocation() { 
    GeoPoint myLocationGeoPoint = myLocationOverlay.getMyLocation(); 
    if (myLocationGeoPoint != null) { 
     mapView.getController().animateTo(myLocationGeoPoint); 
     mapView.getController().setZoom(10); 
    } 
} 

protected boolean isRouteDisplayed() { 
    return false; 
} 

回答

0

最后,最重要的是增加谷歌播放服务为Android库项目如下:

  • 选择文件>导入>的Android>现有Android Code Into工作区并点击Next。选择浏览...,输入*/extras/google/google_play_services/libproject/google-play-services_lib *,然后点击完成
  • 检查包含android-support-v4.jarlibs/文件夹是否存在于您的项目中。
  • android-support-v4.jar位于/extras/android/compatibility/v4/android-support-v4.jar下你的“android-sdk”drectory。

在运行您的项目之前,您必须将项目生成目标设置为“Google API”,而不是Android x.x.版本:选择您的项目并在Eclipse中点击项目>属性>项目构建目标,然后选择任何“Google API”,然后在手机上运行您的项目。如果您使用模拟器,必须将模拟器的AVD设置为任何“Google API”。

+0

非常感谢你。但是,你在上面指导的一切,我做了。但是,MapView显示为空。 :-( – 2013-04-18 06:09:01

+0

我用真实设备测试应用程序,我认为这是因为代码 – 2013-04-18 06:19:10

+0

,所以它可能是空白的,因为API密钥错误,Mapview使用MD5指纹,Maps v2需要SHA指纹,使用keytool命令获取它或使用代码(它在这里的答案:http://stackoverflow.com/questions/13966906/app-is-misconfigured-for-facebook-login-not-returning-the-logcat-after-setti) – Analizer 2013-04-18 06:43:45