Текущее местоположение в MapFragment - PullRequest
0 голосов
/ 29 сентября 2018

Здравствуйте, можете ли вы помочь мне, как добиться, чтобы получить текущее местоположение во фрагменте карт Google?

Я использую NavigationDrawer в своем приложении и отображаю карту как фрагмент.

Но я не могу найти решение, чтобы показать текущее местоположение пользователя.

вот кодмоего фрагмента: я включил только несколько методов.

public class MapFragment extends Fragment implements OnMapReadyCallback {



@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getArguments() != null) {
        mParam1 = getArguments().getString(ARG_PARAM1);
        mParam2 = getArguments().getString(ARG_PARAM2);
    }
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
  View v =  inflater.inflate(R.layout.fragment_map, container, false);
    SupportMapFragment mapFragment = (SupportMapFragment)getChildFragmentManager().findFragmentById(R.id.map1);
    mapFragment.getMapAsync(this);
  return v;
}

// TODO: Rename method, update argument and hook method into UI event
public void onButtonPressed(Uri uri) {
    if (mListener != null) {
        mListener.onFragmentInteraction(uri);
    }
}





@Override
public void onMapReady(GoogleMap googleMap) {

    map = googleMap;

}

Я могу установить текущее местоположение как нормальное MapView, но не во фрагменте.

1 Ответ

0 голосов
/ 29 сентября 2018

Прежде всего, вы должны подать заявку Это разрешение

Тогда вам необходимо указать текущее местоположение устройства:

LocationManager lm = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double longitude = location.getLongitude();
double latitude = location.getLatitude();

Теперь у вас есть ваши координаты(долгота, широта), Затем создайте экземпляр объекта LatLng:

LatLng yourLocation = new LatLng(latitude, longitude);

И теперь переместите камеру в ваше текущее местоположение:

map.moveCamera(CameraUpdateFactory.newLatLngZoom(yourLocation, 13));

Первый аргумент - это пункт назначения, а 13 - это уровень масштабирования

Есть вопросы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...