2016-05-03 3 views
0

Я нашел этот кодКак я могу получить свое местоположение? [Android]

private void centerMapOnMyLocation() { 

    map.setMyLocationEnabled(true); 

    location = map.getMyLocation(); 

    if (location != null) { 
     myLocation = new LatLng(location.getLatitude(), 
       location.getLongitude()); 
    } 
    map.animateCamera(CameraUpdateFactory.newLatLngZoom(myLocation, 
      Constants.MAP_ZOOM)); 
} 

Но getMyLocation() является depricated. Как я могу определить свое местоположение и сначала показать это на моей карте.

Мой код теперь:

public class FragmentMap extends Fragment implements OnMapReadyCallback { 

    MapView mapView; 
    GoogleMap map; 
    TextView t1, t2; 
    private Marker marker; 

    public FragmentMap() { 
     // Required empty public constructor 
    } 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View v = inflater.inflate(R.layout.fragment_map, container, false); 
     t1 = (TextView) v.findViewById(R.id.textView); 
     t2 = (TextView) v.findViewById(R.id.textView2); 
     mapView = (MapView) v.findViewById(R.id.mapview); 
     mapView.onCreate(savedInstanceState); 
     mapView.getMapAsync(this); 

     return v; 
    } 


    @Override 
    public void onMapReady(GoogleMap googleMap) { 
     map = googleMap; 
     map.getUiSettings().setZoomControlsEnabled(true); 
     map.setMapType(GoogleMap.MAP_TYPE_NORMAL); 
     map.setMyLocationEnabled(true); 
     map.setOnMyLocationButtonClickListener(myLocationButtonClickListener); 

    } 



    private GoogleMap.OnMyLocationButtonClickListener myLocationButtonClickListener = new GoogleMap.OnMyLocationButtonClickListener() { 
     @Override 
     public boolean onMyLocationButtonClick() { 
      Location location = map.getMyLocation(); 
      LatLng loc = new LatLng(location.getLatitude(), location.getLongitude()); 
      t1.setText(valueOf(location.getLatitude())); 
      t2.setText(valueOf(location.getLongitude())); 
      marker = map.addMarker(new MarkerOptions().position(loc)); 
      if(map != null){ 
       map.animateCamera(CameraUpdateFactory.newLatLngZoom(loc, 16.0f)); 
      } 
      return false; 
     } 
    }; 

Я прочитал developers.android.com, но не нашел ответа. Мне нужно просто показать свое текущее местоположение на карте. Noghing more

+0

Я видел много примеров здесь, на этом сайте. Everybode использовать getMyLocation() –

+0

Мне понравилось здесь http://stackoverflow.com/a/16005386/6277732. меня устраивает! –

ответ

0

Нижеследующие линии предоставят вам текущие латы и lng.

 double current_lat = mLastLocation.getLatitude(); 
     double current_longi = mLastLocation.getLongitude(); 


    it worked for me to get current location.Please follow this link for more details. 

https://github.com/abhishekujjain/BasicMapsDemo

+0

Я благодарен за вашу помощь –

+0

@EvgenyGooDi: пожалуйста, примите этот ответ, если он решил вашу проблему. – Justcurious

0

Этот tutorial поможет вам узнать местоположение сервис, основанный на Android. Вы можете выбирать между двумя типами провайдеров местоположения, провайдерами местоположения GPS и NETWORK.

Вот шаги, чтобы получить местоположение в Android:

  1. Предоставление разрешений в файле манифеста для приема обновления местоположения

  2. Создать LocationManager экземпляр в качестве ссылки на услуги определения местоположения

  3. Запрос место нахождения от LocationManager

  4. Получать обновление местоположения от LocationListener об изменении местоположения

Для получения дополнительной информации и примеров кода следуйте инструкциям на tutorial.

Проверьте также это SO question, что я думаю, это может вам помочь.

+0

Я попробую ... –

Смежные вопросы