以下是一个使用高德地图Android SDK进行步行路线规划的示例代码,展示如何使用RouteSearchV2.ShowFields获取详细的步行路径信息:

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

import com.amap.api.maps.AMap;
import com.amap.api.maps.MapView;
import com.amap.api.maps.model.LatLng;
import com.amap.api.services.core.LatLonPoint;
import com.amap.api.services.route.RouteResult;
import com.amap.api.services.route.WalkPath;
import com.amap.api.services.route.WalkRouteResult;
import com.amap.api.services.route.WalkStep;
import com.amap.api.services.route.WalkRouteQuery;
import com.amap.api.services.route.WalkRouteSearch;
import com.amap.api.services.route.WalkStep;
import com.amap.api.services.route.WalkStepDetector;
import com.amap.api.services.route.WalkStepDetector.StepDetectorListener;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity implements WalkRouteSearch.OnRouteSearchListener {

    private MapView mapView;
    private AMap aMap;

    private WalkRouteSearch walkRouteSearch;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mapView = (MapView) findViewById(R.id.mapView);
        mapView.onCreate(savedInstanceState);

        aMap = mapView.getMap();

        // 创建步行路径规划查询对象
        walkRouteSearch = new WalkRouteSearch(this);
        walkRouteSearch.setRouteSearchListener(this);

        // 设置起点和终点
        LatLonPoint startPoint = new LatLonPoint(39.993743, 116.472995); // 起点坐标
        LatLonPoint endPoint = new LatLonPoint(39.985576, 116.481288); // 终点坐标

        // 创建步行路径规划查询参数
        WalkRouteQuery query = new WalkRouteQuery(new RouteSearch.FromAndTo(startPoint, endPoint));
        query.setShowFields(RouteSearchV2.ShowFields.ALL); // 设置返回步行路径规划结果包含全部信息
        walkRouteSearch.calculateWalkRouteAsyn(query);
    }

    @Override
    public void onWalkRouteSearched(WalkRouteResult result, int errorCode) {
        if (errorCode == 1000) {
            if (result != null && result.getPaths() != null && result.getPaths().size() > 0) {
                WalkPath walkPath = result.getPaths().get(0); // 获取第一条步行路径
                List<WalkStep> walkSteps = walkPath.getSteps(); // 获取步行路径的详细步骤列表
                for (WalkStep walkStep : walkSteps) {
                    String instruction = walkStep.getInstruction(); // 获取步行路径的详细步骤说明
                    Log.d('Step', instruction);
                }
            }
        }
    }

    @Override
    protected void onResume() {
        super.onResume();
        mapView.onResume();
    }

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

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

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        mapView.onSaveInstanceState(outState);
    }
}

代码解析

  1. 创建WalkRouteSearch对象并设置监听器,监听步行路线规划结果。
  2. 设置起点和终点坐标,示例代码中使用的是北京市中心的两个坐标。
  3. 创建WalkRouteQuery对象,并使用setShowFields(RouteSearchV2.ShowFields.ALL)设置返回所有步行路径规划结果信息。
  4. 调用calculateWalkRouteAsyn(query)方法开始异步计算步行路径规划。
  5. onWalkRouteSearched方法中,判断结果是否成功,并获取第一条步行路径信息。
  6. 遍历所有步行步骤,并打印每个步骤的说明信息。

注意事项

  • 上述代码中的起点和终点坐标是示例坐标,实际使用时需要根据实际情况进行替换。
  • 需要在AndroidManifest.xml文件中添加高德地图的权限和申请的AppKey。
  • 为了保证代码的完整性和可读性,请将代码完整的复制到您的项目中。

通过以上代码,您可以轻松地使用高德地图Android SDK进行步行路线规划,并获取详细的步行路径信息。

Android 高德地图步行路线规划 - RouteSearchV2.ShowFields 代码示例

原文地址: https://www.cveoy.top/t/topic/pjWi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录