如何从onMyLocationChange发送lat和lng到onMapReady?

时间:2015-11-15 12:33:15

标签: google-maps android-studio

我正在为Android设计谷歌地图应用。在这个应用程序中,我世界喜欢使用用户的经度和经度进行计算。但是,我无法使用这些数据因为它们无法在公共无效地址onMapReady中应用。

我曾试过几种方式,比如: 1.意图 2. SharedPreferences 捆绑 4.甚至尝试将这些数据保存到SQLite,并在MapReady上将它们公开。

所有这些方法似乎毫无用处。

 private GoogleMap.OnMyLocationChangeListener myLocationChangeListener = new GoogleMap.OnMyLocationChangeListener() {
    @Override
    public void onMyLocationChange(Location location) {
        LatLng loc = new LatLng(location.getLatitude(), location.getLongitude());
        if(mMap != null){
            mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(loc, 10));

            CameraPosition cameraPosition = new CameraPosition.Builder()
                    .target(loc)
                    .zoom(16)
                    .bearing(0)
                    .tilt(30)
                    .build();
            mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));

            getLocation = location;

            lat = getLocation.getLatitude();
            lng = getLocation.getLongitude();

            latitude = Double.toString(lat);
            longitude= Double.toString(lng);


        }
    }
};

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);

    mMap.setMyLocationEnabled(true);
    mMap.setTrafficEnabled(false);
    mMap.setIndoorEnabled(false);
    mMap.setBuildingsEnabled(true);
    mMap.getUiSettings().setScrollGesturesEnabled(true);
    mMap.getUiSettings().setCompassEnabled(false);
    mMap.getUiSettings().setMyLocationButtonEnabled(true);

    mMap.setOnMyLocationChangeListener(myLocationChangeListener);



    Toast.makeText(getApplicationContext(), "", Toast.LENGTH_SHORT).show();


}

我该怎么办?

0 个答案:

没有答案