用百度地图使一辆汽车正常行驶


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>点沿直线运动</title>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2&services=true"></script>
</head>
<body>
<div style="width: 1020px; height: 340px; border: 1px solid gray" id="container"></div>
<input type="button" value="开始" onclick="run();"/>
</body>
</html>

<script type="text/javascript">
var map = new BMap.Map("container");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 15);
var myP1 = new BMap.Point(116.380967, 39.913285);
//起点
var myP2 = new BMap.Point(116.424374, 39.914668);
//终点
var myIcon = new BMap.Icon("car.jpg", new BMap.Size(140, 98), {
//小车图片

//
offset : new BMap.Size(0, -5), //相当于CSS精灵
imageOffset : new BMap.Size(0, 0)
//图片的偏移量。为了是图片底部中心对准坐标点。

});
var driving2 = new BMap.DrivingRoute(map, {
renderOptions : {
map : map,
autoViewport : true
}
});
//驾车实例

driving2.search(myP1, myP2);
//显示一条公交线路

function run() {
var driving = new BMap.DrivingRoute(map);
//驾车实例
driving.search(myP1, myP2);
driving.setSearchCompleteCallback(function() {
var pts = driving.getResults().getPlan(0).getRoute(0).getPath();
//通过驾车实例,获得一系列点的数组

var paths = pts.length;
//获得有几个点
var carMk = new BMap.Marker(pts[0], {
icon : myIcon
});
map.addOverlay(carMk);
i = 0;
function resetMkPoint(i) {
carMk.setPosition(pts[i]);
if (i < paths) {
setTimeout(function() {
i++;
resetMkPoint(i);
}, 100);
}
}
setTimeout(function() {
resetMkPoint(5);
console.log(i);
}, 100)
});
}
</script>


问题描述(完全解决) 给定一个N*N 的方形网格,设其左上角为起点,坐标为(1,1),X轴向右为正,Y轴向下为正,每个方格边长为1。一辆汽车从起点出发驶向右下角终点,其坐标为(N,N)。 在若干个网格交叉点处,设置了油库,可供汽车行驶途中加油。汽车行驶过程中应遵守如下规则: (1)汽车只能沿网格边行驶,装满油后能行驶K条网格边。出发时汽车已装满油,在起点与终点处不设油库。 (2)当汽车行驶经过一条网格边时,若其X坐标或Y坐标减小,则应付费用B,否则免付费用。 (3)汽车行驶过程中遇油库则应加满油并付加油费用A。 (4)在需要时可在网格点处增设油库,并付增设油库费用C(不含加油费用A)。 (5)(1)~(4)中的各数N、K、A、B、C均为正整数。 你的任务:求汽车从起点出发到达终点的一条所付费用最少的行驶路线。 输入 有若干组数据。每组数据的第一行是N,K,A,B,C的值,2 £ N £ 100,2 £ K £ 10。第二行起是一个N*N 的0-1方阵,每行N个值,至N+1行结束。方阵的第i行第j列处的值为1表示在网格交叉点(i,j)处设置了一个油库,为0时表示未设油库。各行相邻的2 个数以空格分隔。 输出 对每组测试数据,一行输出找到的最优行驶路线所需的费用值。 输入样例 9 3 2 3 6 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 输出样例 12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值