您现在的位置: 首页 > SDK开发 > 开发指南


地图模拟导航 根据路径规划结果,进行第一人称或第三人称的模拟导航 navi

第一步,路径规划(以下代码都要在地图加载完成后调用map.on('loadComplete')

包括导航对象实例创建,起点终点选择,画导航线等等。(同路径规划步骤)

第二步,确定模拟导航参数


//导航对象初始化时,有多个参数作用于模拟导航时的表现。详细解释如下:

//初始化导航对象
var navi = new esmap.ESNavigation({
    map: map,
    locationMarkerUrl: 'image/pointer.png',   //定位标注图片地址
    locationMarkerSize: 150,    //定位标注尺寸大小
    speed: 5,   //模拟导航速度
    followAngle: true,  //地图是否跟随旋转
    followPosition: true,  //地图视角是否跟随位置
    followGap:3,      //导航视角跟随间隔(单位:/s)
    tiltAngle: 30,   //模拟导航时的倾斜角
    audioPlay:true,  //是否开启语音播报
    // scaleLevel:0,   //模拟导航时的放大等级
    // mode:2,         //mode=1:人行(默认),mode=2:车行
    offsetHeight: 1,    //定位标注的高度
    ladderType:1,  //跨层方案选择。1:距离最近(默认),2:电梯 3.楼梯 4.扶梯
    // 设置导航线的样式
    lineStyle: {    
    color: '#33cc61',
    //设置线为导航线样式
    lineType: esmap.ESLineType.ESARROW,
    // lineType: esmap.ESLineType.FULL,            
    lineWidth: 6,		// 设置导航线的宽度
    offsetHeight: 0.5,	// 设置导航线的高度
    smooth: true,		// 设置导航线的转角线平滑效果
    seeThrough: false,	// 设置导航线的穿透楼层地板总是显示的效果
    noAnimate: false	// 设置导航线的动画效果
    //设置边线的颜色   
    // godEdgeColor: '#920000'
    //设置箭头颜色
    // godArrowColor: "#ff0000"
    },
    // scaleAnimate: true,        //导航开始后地图放大的过渡效果
    // isMultiFloors: false           //跨楼层导航时是否自动切换、改变聚焦楼层
});

第三步,路径规划成功之后,开始导航


//下句解决IOS苹果手机不能播放问题,不能删除
map.ESAudioTool.playSoundByName('startNaving');
//导航开始
navi.simulate();
//暂时停止导航
navi.pause = true;
//继续导航
navi.pause = false;

高级功能

监听导航进行中事件


navi.on("walking",function(e){
//e:模拟导航数据
})

监听导航完成事件


navi.on("complete",function(){
console.log("模拟导航结束")
})