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);

}

}

4

1 回答 1

1

有两个适用于 Android 的 Maps API。

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

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

你正试图混合两者。这行不通

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

于 2013-10-16T19:13:07.437 回答