2017-02-21 2 views
1
public class MapViewFragment extends Fragment implements LocationListener 

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


    public static MapViewFragment newInstance(String tabSelected) { 
     MapViewFragment fragment = new MapViewFragment(); 
     Bundle args = new Bundle(); 
     args.putString(Constants.FRAG_D, tabSelected); 
     fragment.setArguments(args); 

     return fragment; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     if (getArguments() != null) { 
     } 
    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     MapsInitializer.initialize(getActivity()); 

     if (mapView != null) { 
      mapView.onCreate(savedInstanceState); 
     } 
     initializeMap(); 
    } 

    private void initializeMap() { 
     if (googleMap == null && mapsSupported) { 
      mapView = (MapView) getActivity().findViewById(R.id.map); 
      googleMap = mapView.getMap(); 
      //setup markers etc... 
     } 
    } 





    @Override 
    public void onResume() { 
     super.onResume(); 
     Marker m1,m2,m3; 
     m1 = googleMap.addMarker(new MarkerOptions() 
       .position(new LatLng(38.609556, -1.139637)) 
       .anchor(0.5f, 0.5f) 
       .title("Title1") 
       .snippet("Snippet1")); 


     m2 = googleMap.addMarker(new MarkerOptions() 
       .position(new LatLng(40.4272414,-3.7020037)) 
       .anchor(0.5f, 0.5f) 
       .title("Title2") 
       .snippet("Snippet2")); 

     mapView.onResume(); 
     initializeMap(); 
    } 

    @Override 
    public void onPause() { 
     super.onPause(); 
     mapView.onPause(); 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     mapView.onDestroy(); 
    } 

    @Override 
    public void onLowMemory() { 
     super.onLowMemory(); 
     mapView.onLowMemory(); 
    } 

    @Override 
    public void onLocationChanged(Location location) { 

    } 

Mein Code ist oben gezeigt. Ich bin in der Lage, zwei Marker im Android Studio manuell zu setzen, aber eine Markierung möchte ich Ort vom aktuellen Standort bekommen. Irgendwelche Hilfe oder irgendwelche Ideen?Verwenden von Fragment Ich möchte aktuellen Standort in Android erhalten

Antwort

1

Das erste, was zuerst versuchen, diese:

googleMap.setMyLocationEnabled(true); 

Dies wird auf den Pfeil auf der rechten Seite oben auf der Seite zeigen, die Sie sehen Ihren Standort machen wird, wenn er aktiviert ist. Diese Schaltfläche löst auch onMyLocationButtonClick() Funktion von Google API.

erhalten dann die aktuellen Informationen über den Standort:

Criteria criteria = new Criteria(); 
    LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); 
    String provider = locationManager.getBestProvider(criteria, true); 
    Location location = locationManager.getLastKnownLocation(provider); 
    double latitude = location.getLatitude(); 
    double longitude = location.getLongitude(); 
    myPosition = new LatLng(latitude, longitude); 

Schließlich fügen Sie Ihre Markierung auf es:

googleMap.addMarker(new MarkerOptions().position(myPosition).title("Marker")); 

Für Ausnahmen und weitere Informationen: https://developers.google.com/maps/documentation/android-api/location

+1

Dank koksalb für Antwort –

Verwandte Themen