百度地图之多点步行路径连线问题

1:两点间步行实例:http://www.6969g.com

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=
您的密钥"></script>
<title>
步行导航检索</title>
</head>
<body>
<div id="allmap"></div>
</body>
</html>
<script type="text/javascript">

var map = new BMap.Map("allmap");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);
var walking = new BMap.WalkingRoute(map, {renderOptions:{map: map, autoViewport: true}});
walking.search("
天坛公园", "故宫");
</script>

2:折线实例:http://www.561.cn

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=
您的密钥"></script>
<title>
折线</title>
</head>
<body>
<div id="allmap"></div>
</body>
</html>
<script type="text/javascript">

var map = new BMap.Map("allmap");
var point = new BMap.Point(116.404, 39.915);
map.centerAndZoom(point, 15);
var polyline = new BMap.Polyline([
new BMap.Point(116.399, 39.910),
new BMap.Point(116.405, 39.920),
new BMap.Point(116.425, 39.900)
], {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5});
map.addOverlay(polyline);
</script>

二:多点步行路径连线实例(完整的代码如下,都有相应说明,实例定义三个点)

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
body, html
{
width: 100%;
height: 100%;
overflow: hidden;
margin: 0;
}
#allmap
{
height: 50%;
width: 40%;
float: left;
border-right: 2px solid #bcbcbc;
}
#r-result
{
height: 100%;
width: 55%;
float: left;
}
</style>
<script src="jquery-1.3.2.min.js" type="text/javascript"></script>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=nLpN5iKztxIWsPqgwsyrruUG"></script>
<script type="text/javascript">

</script>
</head>
<body>
<input id="btn_show" type="button" value="button" />
<div id="allmap">
</div>
<%--style="display:none"--%>
<div id="r-result">
</div>
</body>
</html>
<script type="text/javascript">
//
定义集合用来存放沿线的坐标值
var chartData = [];
//
加载地图
var map = new BMap.Map("allmap");
map.centerAndZoom(new BMap.Point(118.10000, 24.46667), 11);
var walking = new BMap.WalkingRoute(map, { renderOptions: { map: map, autoViewport: true} });
var startpoint = new BMap.Point(118.112917, 24.435153);
var endpoint = new BMap.Point(118.1086487, 24.439108);
walking.search(startpoint, endpoint);
//
通过setSearchCompleteCallback回调事件可以把步行间的坐标信息获取
walking.setSearchCompleteCallback(function (rs) {
var pts = walking.getResults().getPlan(0).getRoute(0).getPath();
for (var i = 0; i < pts.length; i++) {
chartData.push(new BMap.Point(pts[i].lat, pts[i].lng));
}
});
//
另外两点的步行路线
var walkings = new BMap.WalkingRoute(map, { renderOptions: { map: map, autoViewport: true} });
var twoPoint = new BMap.Point(118.1286555, 24.4491888);
walkings.search(endpoint, twoPoint);
walkings.setSearchCompleteCallback(function (rs) {
var pts = walkings.getResults().getPlan(0).getRoute(0).getPath();
for (var i = 0; i < pts.length; i++) {
chartData.push(new BMap.Point(pts[i].lat, pts[i].lng));
}
});
//
用来存放途经点的坐标
var viaRouteData = [];
viaRouteData.push(endpoint);

$(function () {
$("#btn_show").click(function () {
//
这边故意让它晚一秒运行,因为上面获取坐标信息是比较慢又是异步
setTimeout(ShowRoute, 1000);
});
});

function ShowRoute() {
var firstPoint;
var endPoint;
var newChartData = [];
//
对坐标点重新定义
$.each(chartData, function (item, value) {
newChartData.push(new BMap.Point(value.lat, value.lng));
});
//
为了获得起点及终点的坐标值,方便对它进行文字处理
firstPoint = newChartData[0];
endPoint = newChartData[newChartData.length - 1];
//
加载地图
var maps = new BMap.Map("r-result");
maps.centerAndZoom(new BMap.Point(118.10000, 24.46667), 15);
//
把步行线路的坐标集合转化成折线
var polyline = new BMap.Polyline(newChartData, { strokeColor: "red", strokeWeight: 6, strokeOpacity: 0.5 });
maps.addOverlay(polyline);

//
对起点、终点、途经点做一个简单的处理,泡泡跟文字提示
var m1 = new BMap.Marker(firstPoint);
var m2 = new BMap.Marker(endPoint);
maps.addOverlay(m1);
maps.addOverlay(m2);
var lab1 = new BMap.Label("
起点", { position: firstPoint });
var lab2 = new BMap.Label("
终点", { position: endPoint });
maps.addOverlay(lab1);
maps.addOverlay(lab2);

$.each(viaRouteData, function (item, value) {
var m = new BMap.Marker(value);
maps.addOverlay(m);
var lab = new BMap.Label("
途经点", { position: value });
maps.addOverlay(lab);
});
}
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值