对于MapView类型,方法getController()未定义

时间:2013-10-16 19:02:04

标签: android google-maps-android-api-2

我想通过谷歌地图检测用户位置并按照谷歌教程但是有错误 在第6行的方法(getController)中,错误详细说明方法getController()未定义类型MapView

private GoogleMap map;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.ogenia);

    MapView view = (MapView) findViewById(R.id.map);
    final MapController control = view.getController();
    LocationManager Manager = (LocationManager) this
            .getSystemService(Context.LOCATION_SERVICE);

    LocationListener listener = new LocationListener() {

        public void onStatusChanged(String provider, int status,
                Bundle extras) {
            // TODO Auto-generated method stub

        }

        public void onProviderEnabled(String provider) {
            // TODO Auto-generated method stub

        }

        public void onProviderDisabled(String provider) {
            // TODO Auto-generated method stub
        }

        @Override
        public void onLocationChanged(Location location) {

            control.setCenter(new GeoPoint((int) location.getLatitude(),
                    (int) location.getLongitude()));
        }
    };

    Manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,
            listener);

}

}

1 个答案:

答案 0 :(得分:1)

Android有两个Maps API。

一个是Maps V1。它的类在com.google.android.maps包中。 Maps V1已弃用,不应用于新应用。

另一个是Maps V2。它的类在com.google.android.gms.maps包中。

你正试图混合两者。 这不起作用

我建议你花一些时间阅读the documentation for Maps V2并专注于此,删除代码中对Maps V1类的所有引用。