Test Baidu Maps
by Andrey Izman
HTML
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>可拖拽的沿道路测距</title>
<script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=QiG3eSGRXWcbe0EHb4sIQZtk"></script>
</head>
<body>
<input type="button" value="重新开始" onclick="myClear();" />
<input type="button" value="计算距离" onclick="myFigure();" />
<p>总路程是:<span id="myDistance"></span></p>
<div style="width:520px;height:340px;border:1px solid gray" id="container"></div>
<p>使用说明:</p>
<ol>
<li>红色标注可拖拽</li>
<li>点击“计算距离”按钮,开始测距。结果用红色文字标出</li>
<li>点击“重新开始”按钮,清除测距结果</li>
</ol>
</body>
</html>
JavaScript
//初始化地图
var map = new BMap.Map("container");
var point = new BMap.Point(114.5144, 38.04228); //中心点坐标
map.centerAndZoom(point,12);
//控件
var opts = {type: BMAP_NAVIGATION_CONTROL_SMALL}
map.addControl(new BMap.NavigationControl(opts)); //左上角放置平移缩放
var userset = 0;
if(userset == 1)
{
//两秒钟后移动到新的中心点
window.setTimeout(function(){
map.panTo(new BMap.Point(114.549498,38.028404)); //万达
//map.panTo(new BMap.Point(114.528509, 38.056779)); //财富
}, 1000);
}
else
{
// 百度地图API功能
var local = new BMap.LocalSearch(map, {
renderOptions:{map: map,selectFirstResult:true,autoViewport:false}
});
local.search("众美城B区");
}
//创建两个可以拖动的标注
/*var p1 = new BMap.Point(114.549498,38.028404);//万达
var p2 = new BMap.Point(114.562749,37.992993);//众美
var m1 = new BMap.Marker(p1);
var m2 = new BMap.Marker(p2);
map.addOverlay(m1);
map.addOverlay(m2);
m1.enableDragging(); //标注可拖拽的设置
m2.enableDragging();*/
var p1 = new BMap.Point(114.549498,38.028404);//万达
var m1 = new BMap.Marker(p1,{enableDragging: true,raiseOnDrag: true});
map.addOverlay(m1);
//m1.enableDragging();
m1.addEventListener("dragend", function(e){
alert("当前位置:" + e.point.lng + ", " + e.point.lat);
})
addClickHandler('万达广场',m1);
// 添加超市标注
var suppliers = new Array(
new Array('永辉超市怀特店', '114.531106', '38.028297'),
new Array('永辉超市财富大厦店', '114.528509', '38.056779'),
new Array('永辉超市小马店', '114.578325', '38.03013'),
new Array('永辉超市新石店', '114.459271', '38.021766'),
new Array('永辉超市西美五洲店', '114.569996', '38.026314'),
new Array('永辉超市民心广场店', '114.475448', '38.039893')
);
for (var i = 0; i < suppliers.length; i++) {
var point = new BMap.Point(suppliers[i][1], suppliers[i][2]);
var supplier = suppliers[i][0];
addSupplierMarker(point, supplier);
}
//驾车导航用来计算沿道路的距离
var searchComplete = function (results){
if (transit.getStatus() != BMAP_STATUS_SUCCESS){
return ; }
var plan = results.getPlan(0);
output = "<b style='color:red;'>" +...