高德地图教程_通过关键字进行导航

来源:互联网 发布:python中对数函数 编辑:程序博客网 时间:2024/05/21 08:38

 

上一篇的地址

 高德地图教程_poi搜索以及显示

先看UI吧

就是一个button 和一个mapview 点击button就进行导航 因为在上一篇说道 通过Intent 传过来了三个参数 经纬度,名称 利用经纬度就可以找到目的地了,通过我们写死的经纬度就可以导航了。

java代码:

------------------------------------------------------------------------1.先获取传来的值----------------------------------------------------------------------------------

//获取上一个页面获取的经纬度已经名称initParams();

/** * 初始化参数 */private void initParams() {Intent intent = getIntent();//获取经度lng = intent.getDoubleExtra(MapShowActivity.KEY_LNG, 0);//获取纬度lat = intent.getDoubleExtra(MapShowActivity.KEY_LAT, 0);//获取名称title = intent.getStringExtra(MapShowActivity.KEY_TITLE);}

------------------------------------------------------------------------2.初始化控件增加点击事件的处理------------------------------------------------------

/** * 初始化控件 */private void initView() {mBtnWalk = (Button) findViewById(R.id.btn_walk);mBtnWalk.setOnClickListener(this);}
根据官方文档:

步行路径规划

步行路径规划可以根据起终点和步行路线的数据,使用 WalkRouteOverlay 画出步行路线图层,包括起终点和转弯点。另外也可以自定义起终点和步行转弯点的图标。

1.设置搜索条件。

通过 WalkRouteQuery(RouteSearch.FromAndTo ft, int mode) 设置搜索条件。参数ft,路径的起终点;mode,计算路径的模式。可选,默认为最快捷。

WalkRouteQuery 需要两个参数 一个 Fromandto mode , Fromandto 需要起点和终点

/* -------------------- 点击事件 -------------------- */@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_walk://设置开始地点,和终点LatLonPoint llStart = new LatLonPoint(22.534369, 113.945421);LatLonPoint llEnd = new LatLonPoint(lat, lng);//FromAndTo ft = new FromAndTo(llStart, llEnd);WalkRouteQuery query = new WalkRouteQuery(ft, 0);//回调 search.calculateWalkRouteAsyn(query);break;default:break;}}/* -------------------- 点击事件 -------------------- */

发送服务器后回调回来一些数据 到一个方法里后,

/* -------------------- 导航的监听事件 -------------------- */@Overridepublic void onBusRouteSearched(BusRouteResult busRouteResult, int rCode) {}@Overridepublic void onDriveRouteSearched(DriveRouteResult driveRouteResult, int rCode) {}@Overridepublic void onWalkRouteSearched(WalkRouteResult walkRouteResult, int rCode) {if (rCode == 0) {if (walkRouteResult != null && walkRouteResult.getPaths() != null && walkRouteResult.getPaths().size() > 0) {WalkRouteResult result = walkRouteResult;WalkPath path = result.getPaths().get(0);mAMap.clear();WalkRouteOverlay walkRouteOverlay = new WalkRouteOverlay(                 this, mAMap, path,walkRouteResult.getStartPos(),                 walkRouteResult.getTargetPos());            walkRouteOverlay.removeFromMap();            walkRouteOverlay.addToMap();            walkRouteOverlay.zoomToSpan();} else {Toast.makeText(this, "没有查询到结果", Toast.LENGTH_LONG).show();}} else {Toast.makeText(this, "网络连接失败", Toast.LENGTH_LONG).show();}}/* -------------------- 导航的监听事件 -------------------- */在没有点击的时候,就会执行初始化地图
---------------------------------------------------------------3.初始化地图—————————————————————————————————

/** * 初始化地图 */private void initMap(Bundle savedInstanceState) {mGDMapView = (MapView) findViewById(R.id.gd_map_view);mGDMapView.onCreate(savedInstanceState);// 必须要写if (mAMap == null) {mAMap = mGDMapView.getMap();}// 初始化导航类//RouteSearch 该类定义了一条路径。search = new RouteSearch(this);search.setRouteSearchListener(this);}

-------------------------------------------------------------初始化标记--------------------------------------------------------
/** * 初始化标记 */private void initMarker() {// 设置标记MarkerOptions options = new MarkerOptions();LatLng latLng = new LatLng(lat, lng);options.position(latLng);options.title(title);// 将标记点设置为地图中心点CameraUpdate update = CameraUpdateFactory.newLatLngZoom(latLng, 18);mAMap.animateCamera(update);// 添加标记mAMap.addMarker(options);}


0 0