2015-12-16 85 views
3

我正在製作一個旅遊地圖android與谷歌地圖標記和多義線,我成功地做到了這一點,但現在我需要添加的東西,可以使我的應用程序更友好的用戶。所以我想把這個功能放到我的應用程序中。Android onLocationChanged與方向使用谷歌地圖Api v2

就是這樣的。

enter image description here

與實時更新,當用戶移動。

反正這是我的應用程序

enter image description here

我不知道如何下手上放置方向。任何人都可以幫助我?

嘗試使用這種方法,但我失敗了。

` @Override 公共無效onLocationChanged(地點位置){// 獲取的當前位置的緯度 雙緯度= location.getLatitude();

// Getting longitude of the current location 
    double longitude = location.getLongitude(); 

    // Creating a LatLng object for the current location 
    LatLng latLng = new LatLng(latitude, longitude); 

    // Showing the current location in Google Map 
    googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng)); 

    // Zoom in the Google Map 
    googleMap.animateCamera(CameraUpdateFactory.zoomTo(18)); 



    start = latLng; 

    Log.d("Location Changed: ", latLng.toString()); 
    //etLog.append("Location Changed: " + latLng.toString() + System.getProperty("line.separator")); 
} 

`

+0

你能告訴你的onLocationChanged代碼??你已經使用編輯 –

+0

@BhanuChowdary問題所以當你做調試得到執行onLocationChanged方法考慮的? – mardagz

+0

的LocationManager –

回答

2

試試這個代碼,你會得到更新的位置住在地圖上。

public class MapActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, 
    GoogleApiClient.OnConnectionFailedListener,LocationListener{ 
final String TAG = "mapactivity"; 
LocationRequest locationRequest; 
GoogleAPiClient googleApiClient; 
googleApiClient = new GoogleApiClient.Builder(this) 
      .addApi(LocationServices.API) 
      .addConnectionCallbacks(this) 
      .addOnConnectionFailedListener(this).build(); 
@Override 
public void onStart(){ 
    super.onStart(); 
    googleApiClient.connect(); 
} 
@Override 
public void onStop(){ 
    googleApiClient.disconnect(); 
    super.onStop(); 
} 
@Override 
public void onConnectionSuspended(int i){ 
    Log.i(TAG, "Connection suspended"); 

} 
@Override 
public void onConnectionFailed(ConnectionResult connectionResult){ 
    Log.i(TAG, "connection failed"); 

} 
@Override 
public void onConnected(Bundle bundle){ 
    locationRequest = LocationRequest.create(); 
    locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 
    locationRequest.setInterval(1000); 
    LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, locationRequest, this); 
} 
@Override 
public void onLocationChanged(Location location){ 
    Double curLat = location.getLatitude();//current latitude 
    Double curLong = location.getLongitude();//current longitude 
} } 
+0

讓我試試這個。 – mardagz

+0

我可以使用v2嗎?谷歌API客戶端? – mardagz

+0

是的,你可以使用v2。它應該工作。 –

-1

您必須啓用從谷歌開發者控制檯谷歌地圖API的方向。要獲取路線,必須將兩個緯度線作爲源和目的地與您的api鍵一起傳遞,您將獲得給定源和目的地之間的所有點在它們之間繪製折線,您將獲得在源和目標之間繪製折線的方向,如屏幕截圖所示。

https://developers.google.com/maps/documentation/directions/intro#Waypoints

+1

這與這個問題有什麼關係? –