0

在这种情况下,地图出现在我正在尝试制作的应用程序上,但是当应用程序打开时,文件夹不会出现在当前位置,而是出现在Sout大西洋中。有没有办法在应用程序打开时调出当前位置?如何在应用程序启动时获取当前位置?

这里是我的代码:

public class GmapFragment extends Fragment implements OnMapReadyCallback, 
     ActivityCompat.OnRequestPermissionsResultCallback, 
     LocationListener 
{ 

    GoogleMap mMap; 
    GoogleApiClient mGoogleApiClient; 
    Location mLastLocation; 
    double longitude; 
    double latitude; 



    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.fragment_gmaps, container, false); 
    } 


    @Override 
    public void onViewCreated(View view, Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 

     MapFragment fragment = (MapFragment) getChildFragmentManager().findFragmentById(R.id.map); 
     fragment.getMapAsync(this); 
    } 


    @Override 
    public void onMapReady(GoogleMap googleMap) { 
     LocationManager locManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE); 

     boolean network_enabled = locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); 

     Location location; 

     if(network_enabled){ 

      location = locManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 

      if(location!=null){ 
       longitude = location.getLongitude(); 
       latitude = location.getLatitude(); 

       mMap.addMarker(new MarkerOptions() 
         .position(new LatLng(-7.0559935,110.4320226)) 
         .title("Kos Munyiq")); 

       mMap.addMarker(new MarkerOptions() 
         .position(new LatLng(-7.0500666,110.4264657)) 
         .title("Kos Pos")); 


       mMap.animateCamera(CameraUpdateFactory.zoomTo(0)); 
       mMap.setMyLocationEnabled(true); 
       mMap.getUiSettings().setZoomControlsEnabled(true); 
       mMap.getUiSettings().setMapToolbarEnabled(false); 
      } 
     } 
    } 

    @Override 
    public void onLocationChanged(Location location) { 
    } 
} 

很抱歉,如果有什么问题,我的问题。

回答

0

您正在某处添加标记。尝试使用下面的代码,而不是那些标记..

mMap.setMyLocationEnabled(true); <<this is the main line 
mMap.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() { 

@Override 
public void onMyLocationChange(Location arg0) { 
    mMap.addMarker(new MarkerOptions().position(new LatLng(arg0.getLatitude(), arg0.getLongitude())).title("It's Me!")); 
    } 
}); 

的位置上的改变功能会给你你的位置,即使你改变你的位置...如果你只是需要你的当前位置,静态的,你只会需要下面的代码,

mMap.setMyLocationEnabled(true); 
mMap.addMarker(new MarkerOptions() 
        .position(new LatLng(latitude,longitude)) 
        .title("It's Me!")); 

然后,你会想动画相机,放大/缩小一点点。 希望它有帮助。干杯!

+0

谢谢你试图帮助我,我试图改变代码相应的解释。地图出现,但仍在南大西洋海域,当前位置按钮消失。我做了什么有什么问题? – Plokodot

相关问题