Android onLocationChanged with Direction使用Google Map Api v2

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android onLocationChanged with Direction使用Google Map Api v2相关的知识,希望对你有一定的参考价值。

我正在使用谷歌地图标记和折线制作一个android的旅游地图,我成功地做到了,但现在我需要添加一些可以使我的应用程序更友好的用户。所以我想把这个功能放到我的应用程序中。

这样的事情。

enter image description here

用户移动时进行实时更新。

总之这是我的应用程序

enter image description here

我不知道如何开始放置DIRECTION。有人可以帮帮我吗?

尝试使用这种方法,但我失败了。

`@Override public void onLocationChanged(Location location){//获取当前位置的纬度double latitude = 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"));
}

`

答案

试试这个代码,您将在地图上获得更新的位置。

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
} }
另一答案

您必须从谷歌开发者控制台启用谷歌地图方向api。要获得路线,您必须使用api键传递两个latlng作为源和目标,您将获得给定源和目标之间的所有点在它们之间绘制折线,您将获得在源和目标之间绘制的折线,如屏幕截图所示this link.

以上是关于Android onLocationChanged with Direction使用Google Map Api v2的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 中未调用 onlocationchanged

为啥 Android 服务中没有调用 OnlocationChanged?

Android onLocationChanged 不调用

Android OnlocationChanged storage

android - 即使没有可用的互联网,也会调用 onLocationChanged

Android Google Maps API OnLocationChanged 仅调用一次