首页 文章

当第一次加载应用时,onMapReady纬度和经度为空[复制]

提问于
浏览
-1

这个问题在这里已有答案:

我可以在移动标记上显示纬度和经度 . 当 onMapReady 调用时,纬度和经度设置为 zero .

这是代码:

public void onMapReady(GoogleMap googleMap) {
    Log.d(TAG, "OnMapReady");
    mMap = googleMap;

    mMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() {
        @Override
        public void onCameraChange(CameraPosition cameraPosition) {
            Log.d("Camera postion change" + "", cameraPosition + "");
            mCenterLatLong = cameraPosition.target;


            mMap.clear();

            try {

                Location mLocation = new Location("");
                mLocation.setLatitude(mCenterLatLong.latitude);
                mLocation.setLongitude(mCenterLatLong.longitude);

                startIntentService(mLocation);
                mLocationMarkerText.setText("Lat : " + mCenterLatLong.latitude + "," + "Long : " + mCenterLatLong.longitude);

            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {

        return;
    }

}

当我打开应用程序时,我想设置 -34, 151 lat和long,否则我想在应用程序打开时获取当前位置 . 我怎样才能做到这一点?

2 回答

  • 1

    onMapReady(GoogleMap googleMap) 中添加以下代码行

    mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(-34, 151), 12.0f));

  • 1

    您在 onMapReady(GoogleMap googleMap) 中添加此代码

    CameraPosition cameraPosition = new CameraPosition.Builder()
    .target(new LatLng(-34, 151))
    .zoom(13)   //optional if you want to zoom or not
    .build();
    MapFragment.newInstance(new GoogleMapOptions()
    .camera(cameraPosition));
    

    要获取 Map 上的当前位置,请查看answer

相关问题