一、百度地图API接入
1、搜索百度地图开发平台
2、注册百度账号
3、登陆并申请成为开发者
4、在百度地图开发平台的首页选择控制台,在控制台中创建应用
创建好应用以后就能在控制台我的应用中看到这个应用,其中最重要的是AK,这是百度地图分配给我们应用的一个专用的秘钥,必须使用秘钥才能访问百度地图API。
二、在HTML中使用百度地图API
1、在html中引入百度地图js文件
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.0&type=webgl&ak=您的密钥"></script>
将ak后的值替换为我们自己的秘钥。
2、在网页中定义一个DIV用于显示地图
显示地图的DIV一定要有id属性。
3、在网页中显示地图
基础步骤:
var map = new BMapGL.Map("container");
var point = new BMapGL.Point(116.404, 39.915);
map.centerAndZoom(point, 15);
可选步骤:
map.centerAndZoom(point, 15);
map.enableScrollWheelZoom(true);
map.setMapType(BMAP_EARTH_MAP);
4、添加可选控件
var scaleCtrl = new BMapGL.ScaleControl();
map.addControl(scaleCtrl);
var zoomCtrl = new BMapGL.ZoomControl();
map.addControl(zoomCtrl);
var cityCtrl = new BMapGL.CityListControl();
map.addControl(cityCtrl);
var locationControl = new BMapGL.LocationControl();
map.addControl(locationControl);
5、定位功能
百度地图支持浏览器定位和IP定位,当浏览器定位失败时,会默认采用IP定位。浏览器定位更加精确,IP定位只能定位到大概位置。
百度地图自带定位控件没有使用IP定位
var geolocation = new BMapGL.Geolocation();
geolocation.getCurrentPosition(function (r) {
if (this.getStatus() == BMAP_STATUS_SUCCESS) {
var mk = new BMapGL.Marker(r.point);
map.addOverlay(mk);
map.panTo(r.point);
}
else {
alert('failed' + this.getStatus());
}
});
6、添加地图标记
map.addEventListener("click",function(e){
var mk = new BMapGL.Marker(e.latlng);
map.addOverlay(mk);
})
7、给地图标记添加点击事件
map.addEventListener("click",function(e){
var mk = new BMapGL.Marker(e.latlng);
mk.addEventListener("click",function(){
console.log(this);
event.stopPropagation();
});
map.addOverlay(mk);
})
8、添加信息窗口
function addInfoWindow(content,point,width,height,title) {
var opts = {
width: width,
height: height,
title: title
}
var infoWindow = new BMapGL.InfoWindow(content, opts);
map.openInfoWindow(infoWindow, point);
}
9、路径规划
驾车路径规划
driving = new BMapGL.DrivingRoute(map, { renderOptions: { map: map, autoViewport: true } });
driving.clearResults();
driving.search(startPoint, endPoint);
公交路径规划
transit = new BMapGL.TransitRoute(map, {
renderOptions: { map: map },
onSearchComplete: function (results) {
if (transit.getStatus() != BMAP_STATUS_SUCCESS) {
return;
}
var output = '';
for(var i=0;i<results.getNumPlans();i++){
var plan = results.getPlan(i);
output +='<div style="margin-top:5px; background-color:#CCC"><p>总时长:'+plan.getDuration(true)+'</p>';
output += '<p>总路程:'+plan.getDistance(true)+'</p>';
output +=plan.getDescription(true)+"</div>";
}
$('#result').css('display', 'block');
$('#result').html(output);
},
});
transit.clearResults();
transit.search(startPoint, endPoint);
10、正逆地址解析
根据经纬度查找位置
var myGeo = new BMapGL.Geocoder();
myGeo.getLocation(经纬度坐标点, function(result){
if (result){
alert(result.address);
}
});
根据地理位置查询经纬度坐标
var myGeo = new BMapGL.Geocoder();
myGeo.getPoint(地址字符串(重庆市红旗河沟), function(point){
if(point){
}else{
alert('您选择的地址没有解析到结果!');
}
},可选参数)
无论你在学习上有任何问题,重庆蜗牛学院欢迎你前来咨询,联系QQ:296799112
|