一款地图移动线路的动画特效,兼容PC和移动端,一共有3个图标:起点图标、终点图标和移动车辆动画图标,实时显示剩余路程的米数,整体的效果还是挺不错的哦,喜欢的童鞋请收下吧。
页面的head部分,需调用百度地图的API接口,并引入一个JS文件,代码如下:
<script src="http://api.map.baidu.com/getscript?v=2.0&ak=A1LU7iHS0avqQwPLAxbhKn0UYSQCuRVH&services=&t=20170803155555"></script>
<script type="text/javascript" src="js/lushu_min.js"></script>
页面的body部分,仅需一个指定id的div容器用来装载地图,代码如下:
<div id="map"></div>
页面的底部,创建地图实例并设置好各类参数,代码如下:
<script type="text/javascript">
var map = new BMap.Map("map");//创建地图实例
//创建起点
var pt_start = new BMap.Point(117.270591,23.812975);
var startIcon = new BMap.Icon("images/start.png", new BMap.Size(36,36));
var markerStrat = new BMap.Marker(pt_start,{icon:startIcon}); // 创建标注
map.addOverlay(markerStrat); // 将标注添加到地图中
//创建终点
var pt_end = new BMap.Point(116.885031,23.689196)//new BMap.Point(115.559445,22.859811);
var endIcon = new BMap.Icon("images/end.png", new BMap.Size(36,36));
var markerEnd = new BMap.Marker(pt_end,{icon:endIcon}); // 创建标注
map.addOverlay(markerEnd); // 将标注添加到地图中
map.centerAndZoom(pt_start,15);
map.enableScrollWheelZoom();
//创建司机
var pt;
var marker2;
var index=0;
var points = [
new BMap.Point(117.270591,23.812975),
new BMap.Point(117.227819,23.814327),
new BMap.Point(117.171452,23.800036),
new BMap.Point(117.132368,23.791609),
new BMap.Point(117.076919,23.764658),
new BMap.Point(117.024827,23.754510),
new BMap.Point(116.981047,23.739533),
new BMap.Point(116.939091,23.717617),
new BMap.Point(116.900199,23.699399),
new BMap.Point(116.885031,23.689196),
];//设置坐标数组
var oTime = setInterval(function(){
createp(index,points);
distance = Math.ceil(map.getDistance(pt,pt_end));
if(index+1<points.length){
index++;
}else{
index=points.length-1;
}
var label = new BMap.Label("还距您"+distance+'米',{offset:new BMap.Size(0,-30)});
label.setStyle({
fontSize : "0.6em",
border:0,
fontFamily:"'Microsoft YaHei','Lantinghei SC','Open Sans',Arial,'Hiragino Sans GB','STHeiti','WenQuanYi Micro Hei','SimSun',sans-serif",
"border-radius":"20px",
padding:"0.3em 0.4em"
});
marker2.setLabel(label);
map.centerAndZoom(pt,13);
if(distance==0){
var polyline = new BMap.Polyline(points);//创建折线
map.addOverlay(polyline);//覆盖折线到地图上
clearInterval(oTime);
map.centerAndZoom(pt_end,13);
}
},1000);
function createp(index,points){
map.removeOverlay(marker2)
pt = points[index];
var myIcon = new BMap.Icon("images/car.gif", new BMap.Size(100,160),{ //小车图片
//offset: new BMap.Size(0, -5), //相当于CSS精灵
//imageOffset: new BMap.Size(-20, 0) //图片的偏移量。为了是图片底部中心对准坐标点。
});
marker2 = new BMap.Marker(pt,{icon:myIcon}); // 创建标注
map.addOverlay(marker2); // 将标注添加到地图中*/
}
</script>
系统已开启自动识别垃圾评论机制,识别到的自动封号,下载出错或者资源有问题请联系全栈客服QQ 1915635791