2017-01-24 2 views
0

Я использовал Fragment реализует LocationListener, и я попытался получить свое текущее местоположение, но я не могу получить его успешно. Я что-то пропустил?Я не могу получить местоположение от locationlistener

public class TrafficInformation extends Fragment implements LocationListener{ 

    private MapView mapView; 
    private GoogleMap googleMap; 
    private double myLatitude,myLongitude; 
@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.traffic_information_fragment, container, false); 
mapView = (MapView) view.findViewById(R.id.mapview); 
     mapView.onCreate(savedInstanceState); 
mapView.onResume(); 
try { 
      MapsInitializer.initialize(getActivity().getApplicationContext()); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
mapView.getMapAsync(new OnMapReadyCallback() { 
      @Override 
      public void onMapReady(GoogleMap mMap) { 
       googleMap = mMap; 
       //part of android 6.0 permission 
       int flag = ActivityCompat.checkSelfPermission(getActivity(), Manifest.permission.ACCESS_COARSE_LOCATION); 
       if (flag != PackageManager.PERMISSION_GRANTED) { 
        ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 1); 
       } else { 
        googleMap.setMyLocationEnabled(true); 
       } 
       // For dropping a marker at a point on the Map 

       //i set my current location over here------------------- 
       LatLng sydney = new LatLng(myLatitude, myLongitude); 
       googleMap.addMarker(new MarkerOptions().position(sydney).title("Marker Title").snippet("Marker Description")); 

       //For zooming automatically to the location of the marker 

       CameraPosition cameraPosition = new CameraPosition.Builder().target(sydney).zoom(16).build(); 
       googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); 
      } 
     }); 

     return view; 
    } 

я стараюсь, чтобы получить его от этой функции:

@Override 
    public void onLocationChanged(Location location) { 
     myLatitude=location.getLatitude(); 
     myLongitude=location.getLongitude(); 
    } 

я не могу получить myLatitude и myLongitude места, почему? любая помощь была бы признательна.

ответ

1

Вы не зовете

LocationServices.FusedLocationApi.requestLocationUpdates( 
      mGoogleApiClient, mLocationRequest, this) 

Вы только позвонив

googleMap.setMyLocationEnabled(true); 

В этом не просим обновления местоположения ... просто установить штифт на вашу позицию на карте.

Проверьте здесь, чтобы увидеть, как запросить текущее местоположение:

https://developer.android.com/training/location/receive-location-updates.html

+0

спасибо, я посмотреть и надеюсь, что я могу решить ее –

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