2017-02-02 8 views
0

私の現在の場所から地図をロードします。今私は次のコードを使用しています。負荷後現在の場所から地図を読み込む方法

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_maps); 
     // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
       .findFragmentById(R.id.map); 
     mapFragment.getMapAsync(this); 


    } 

マップここ

@Override 
    public void onMapReady(GoogleMap googleMap) { 
     mMap = googleMap; 
     mMap.setOnMarkerClickListener(MapsActivity.this); 


     if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 
      return; 
     } 
     mMap.setMyLocationEnabled(true);  
     if(checkLocationService()){ 
      startLocationUpdates(); 
     } 

カメラ位置が現在の位置に移動位置を取得した後の最初の既定の場所を示す地図。しかし、私は現在の場所から地図をロードしたい。 UBERのように、OLA ..私の要求を達成するために何か考えてください。

+2

場所サービスが更新を受信する前に、現在位置をロードすることはできません。 Uberはこれをしません、それは現在の場所を待つか、最後の既知の場所を使用します。 – ChickenFeet

+0

あなたができることは、場所の更新を受け取った後にのみ地図を表示することです。 – ChickenFeet

答えて

0

最初に場所を変更してから、Googleマップのアクティビティ/負荷マップを呼び出します。

private void requestLocation(){ 
    locationManager.requestLocationUpdates(
     LocationManager.GPS_PROVIDER, 0, 0, mListener 
    ); 
} 

private LocationListener mListener = new LocationListener() { 
    @Override 
    public void onLocationChanged(Location location) { 
     // Call maps activity here/load map 
    } 
}; 

はまた、海&表示waiting for locationメッセージの中央に移動し、その後戻って現在の場所に移動し、位置更新を待つことができます。これは、マップを利用するアプリでよく使用されます。

0

あなたのベースの場所からフェッチされた現在の場所までの距離を見つけることができます。いくつかのメテオールの下にある場合は、マップに入力できます。

ます。private void setUpMapIfNeeded(){

if (mMap == null) { 
     // Try to obtain the map from the SupportMapFragment. 
     mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)) 
       .getMap(); 
     mMap.setMyLocationEnabled(true); 
     // Check if we were successful in obtaining the map. 
     if (mMap != null) { 


     mMap.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() { 

     @Override 
     public void onMyLocationChange(Location arg0) { 
     // TODO Auto-generated method stub 



     } 
    } 
} 
関連する問題