百度地图添加覆盖物与给定两点路线规划

final LatLng ll = new LatLng(latiide, longitude);
                BitmapDescriptor descriptor = BitmapDescriptorFactory
                        .fromResource(marker);
                OverlayOptions options = new MarkerOptions().position(ll).icon(
                        descriptor);
                mBaiduMap.addOverlay(options);

路线规划:

mMapView = (MapView) findViewById(R.id.bmapView);
        mBaiduMap = mMapView.getMap();
        search = RoutePlanSearch.newInstance();
        search.setOnGetRoutePlanResultListener(listener);

//需要规划的两点
        PlanNode st = PlanNode.withLocation(new LatLng(39.931867, 116.395645));
        PlanNode ed = PlanNode.withLocation(new LatLng(39.915267, 116.40355));

search.walkingSearch(new WalkingRoutePlanOption().from(st).to(ed));

当然好有他的事件:

OnGetRoutePlanResultListener listener = new OnGetRoutePlanResultListener() {
        public void onGetWalkingRouteResult(WalkingRouteResult result) {
            // 获取步行线路规划结果
            if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
                Toast.makeText(DaoHangActivity.this, "抱歉,未找到结果",
                        Toast.LENGTH_SHORT).show();
            }
            if (result.error == SearchResult.ERRORNO.AMBIGUOUS_ROURE_ADDR) {
                // 起终点或途经点地址有岐义,通过以下接口获取建议查询信息
                // result.getSuggestAddrInfo()
                return;
            }
            if (result.error == SearchResult.ERRORNO.NO_ERROR) {

// route = result.getRouteLines().get(0);
                WalkingRouteOverlay overlay = new MyWalkingRouteOverlay(
                        mBaiduMap);
                mBaiduMap.setOnMarkerClickListener(overlay);
                routeOverlay = overlay;
                overlay.setData(result.getRouteLines().get(0));
                overlay.addToMap();
                overlay.zoomToSpan();
            }

}

public void onGetTransitRouteResult(TransitRouteResult result) {
            // 获取公交换乘路径规划结果
        }

public void onGetDrivingRouteResult(DrivingRouteResult result) {
            // 获取驾车线路规划结果
        }

};
自定义起点终点 图标:

private class MyWalkingRouteOverlay extends WalkingRouteOverlay {

public MyWalkingRouteOverlay(BaiduMap baiduMap) {
            super(baiduMap);
        }

@Override
        public BitmapDescriptor getStartMarker() {
            if (useDefaultIcon) {
                return BitmapDescriptorFactory.fromResource(R.drawable.icon_st);
            }
            return null;
        }

@Override
        public BitmapDescriptor getTerminalMarker() {
            if (useDefaultIcon) {
                return BitmapDescriptorFactory.fromResource(R.drawable.icon_en);
            }
            return null;
        }
    }

百度地图添加覆盖物与给定两点路线规划

时间: 2024-10-12 17:19:44

百度地图添加覆盖物与给定两点路线规划的相关文章

android百度地图 添加覆盖物Marker与InfoWindow的使用

如何添加覆盖物,实现周边搜索,以及对覆盖物的点击出现介绍等效果. 效果图: 我们的需求是,当用户点击衣食住行,或者对对附近搜索是,从服务器返回数据(经纬度,商家信息,介绍等),然后动态生成覆盖物,实现上述效果.关于图片,由于手机上的内存的有限性,所有的图片下载完成都应该存入预设的缓存中,例如LruCache,然后需要的时候从缓存取,缓存没有,下载完成放入缓存:即实现所有的图片所占的内存永远不会超过缓存预设的内存值,当然了本篇的重点不是这个,我直接拿了几张图片加入我们的项目中模拟. 1.承载数据的

百度地图添加覆盖物

按照官方的demo部署好以后.添加一个覆盖物. 需要的类: BitmapDescriptor  bitmap 图像对象  用于显示到覆盖物的地方. MapView  主要对象   有 页面上的控件实例化. BaiduMap  有mapView.getMap() ;  地图对象.可以添加各种东西到地图上. MapStatusUpdate  描述地图状态将要发生的变化. LatLng 地理坐标基本数据结构 直接由纬经度实例化. OverlayOptions  覆盖物配置对象.可以将覆盖物的图标,地理

百度地图添加 标示——默认、自定义(小狐狸)标示

一.简介 所有叠加或覆盖到地图的内容,我们统称为地图覆盖物.如标注.矢量图形元素(包括:折线和多边形和圆).信息窗口等.覆盖物拥有自己的地理坐标,当您拖动或缩放地图时,它们会相应的移动. 地图API提供了如下几种覆盖物: Marker:标注表示地图上的点,可自定义标注的图标. Label:表示地图上的文本标注,您可以自定义标注的文本内容. 可以使用map.addOverlay方法向地图添加覆盖物,使用map.removeOverlay方法移除覆盖物,注意此方法不适用于InfoWindow. 二.

百度地图添加多个行政区划

添加多个行政区划 并给他添加不同颜色 示例图 下面是代码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=

项目中的百度地图添加标注,动态弹框

1.最近项目开发中,用到了地图,需求是使用百度地图 初始化地图: var list = ""; var map = ""; var drawingManager = ""; if (typeof (BMap) == 'undefined') { //地图加载失败 document.getElementById("allmap").innerHTML = "地图加载失败"; } else { /** 百度地图

百度地图 添加控件

<!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script typ

百度地图自定义覆盖物

<script> var map = new BMap.Map('allmap'); var Bcenter = new BMap.Point(116.404,39.915); map.centerAndZoom(Bcenter,11); //自定义的覆盖物 function myOverlay(point,text,mouseoverText){ this._point = point; this._text = text; this._overtext = mouseoverText; }

百度地图 添加标注

给地图增加一个事件监听,addEventListener: 当鼠标点击地图时,首先获取改点坐标,其次在改点坐标处增加一个红色标注. <!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <meta http-equiv="Content-Type"

百度地图 自定义可编辑的交通路线

任务描述: 我想自己绘制一条从地铁站出口到天安门的道路,而且还需要根据我的喜好来改变这条路线. 如何实现: 鼠标左击地图,绘制路线:双击后,绘制结束:绘制结束后,路线可编辑. TIPS: API1.1以后,可以使用enableEditing()来开启折线可编辑功能. <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; cha