1.初始步骤
1.查找到百度地图开发平台,点击进入;
2.第一次进入需要输入账号和密码,登录成功后,进入到控制台;找到应用管理,在我的应用,点击创建应用;
3.跳转到创建应用界面,输入应用名称、选择应用类型(一般为浏览器端)和启用服务,输入域名白名单,然后点击提交;
4.这时会在应用表格中,生成一条新记录,有对应的应用编号、应用名称和访问应用(AK)等;
5.点击右上角的开发文档,选择Web开发下的JavaScript API v3.0;
6.在JavaScript API界面,可以查看到服务介绍、开发指南、类参考、示例DEMO等;
7.可根据官方文档自己创建地图;
2.使用步骤
1.初始化地图,并设置地图中心点
var map = new BMap.Map("allmap"); // 创建Map实例
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 初始化地图,设置中心点坐标和地图级别
当然也可以根据城市名称设置地图的中心点:
map.centerAndZoom("上海",15);
map.addControl(new BMap.ScaleControl()); //添加左下方比例尺控件
map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
map.setCurrentCity("北京"); // 设置地图显示的城市
2.常用控件
addMapCtrl();
// 添加地图控制
function addMapCtrl(){
map.enableScrollWheelZoom(true); //地图可以缩放
map.addControl(new BMap.NavigationControl()); // 地图导航
map.addControl(new BMap.ScaleControl()); // 缩放控件
map.addControl(new BMap.OverviewMapControl()); //概况
map.addControl(new BMap.MapTypeControl()); //地图类型
}
3.移动地图,设置地图最大最小的缩放级别
var map = new BMap.Map("allmap",{minZoom:4,maxZoom:8}); // 创建Map实例,设置地图允许的最小/大级别
//当然也可以动态设置级别:
map.setMaxZoom(10);
map.setMinZoom(2);
4.获得地图中心点,返回两点之间的距离
getCenter()
getDistance(start:Point, end:Point)
var pointA = new BMap.Point(106.486654,29.490295); // 创建点坐标A--大渡口区
var pointB = new BMap.Point(106.581515,29.615467); // 创建点坐标B--江北区
alert('距离是:'+(map.getDistance(pointA,pointB)).toFixed(2)+' 米。'); //获取两点距离,保留小数点后两位
5.信息窗口
var opts = {
width : 250, // 信息窗口宽度
height: 100, // 信息窗口高度
title : "Hello" // 信息窗口标题
}
var infoWindow = new BMap.InfoWindow("World", opts); // 创建信息窗口对象
map.openInfoWindow(infoWindow, map.getCenter()); // 打开信息窗口
map.addOverlay(marker); // 将标注添加到地图中
map.centerAndZoom(point, 15);
var opts = {
width : 200, // 信息窗口宽度
height: 100, // 信息窗口高度
title : "海底捞王府井店" , // 信息窗口标题
enableMessage:true,//设置允许信息窗发送短息
message:"点击链接看地址"
}
var infoWindow = new BMap.InfoWindow("地址:北京市东城区王府井大街88号乐天银泰百货八层", opts); // 创建信息窗口对象
marker.addEventListener("click", function(){
map.openInfoWindow(infoWindow,point); //开启信息窗口
});
7.多边形区域
var polyline = new BMap.Polyline([
new BMap.Point(116.399, 39.910),
new BMap.Point(116.405, 39.920),
...
],
{strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5}
);
map.addOverlay(polyline);
8.设置api接口,根据输入内容搜索相关地点
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>地图开发6</title>
<style>
#container{
width: 100%;
height: 500px;
}
.search{ position: relative;}
.tip{position: absolute; top:30px; background-color: #fff; z-index: 10000000;}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=I5p02PxH5e459CAk9vt4elbXNTkgfxde"></script>
<!-- 引入js,填入ak -->
<script src="jquery-3.4.1.js"></script>
</head>
<body>
<h1></h1>
<div class="search">
<input type="text" id="searchbox">
<div class="tip"></div>
</div>
<div id="container"> </div>
<!-- 地图的容器 -->
<script>
var map = new BMap.Map("container");
//初始化地图
var point = new BMap.Point(113.665,34.784);
//指定地图的中心点(经度,维度)
map.centerAndZoom(point,16);
//地图指定中旬和缩放层次
map.enableScrollWheelZoom(true); //地图可以缩放
//自定义标注
let Icon = new BMap.Icon('./assets/start_point.png',
//图片地址
new BMap.Size(36,42),
//显示图片大小
{imageSize:new BMap.Size(36,42),anchor:new BMap.Size(18,42)})
// 把原始图片缩小到36,42 偏移到底部中心区域(默认左上角)
var marker = new BMap.Marker(point,{icon:Icon});
//创建一个标注
map.addOverlay(marker);
//添加标注到地图
var local = new BMap.LocalSearch(map,{
renderOptions:{map:map,autoViewport:true}
});
$(function(){
$.ajax({
url:'http://api.map.baidu.com/location/ip?ak=I5p02PxH5e459CAk9vt4elbXNTkgfxde&ip=&coor=bd09ll&output=jsonp',
dataType:"jsonp",
success:function(res){
console.log(res);
$("h1").html(res.content.address);
}
})
$("#searchbox").on("input",function(){
//显示tip
$(".tip").show();
$.ajax({
url:`http://api.map.baidu.com/place/v2/suggestion?query=${$("#searchbox").val()}®ion=郑州&city_limit=true&output=json&ak=I5p02PxH5e459CAk9vt4elbXNTkgfxde`,
dataType:"jsonp",
success:function(res){
console.log(res);
$(".tip").html(res.result.map(item=>`<p>${item.name}</p>`).join(''));
//设置tip的内容为result数组返回成p元素,连接字符串
},
})
})
$(".tip").on("click","p",function(){
local.search($(this).text());
//执行地图搜索 为当前单击的p标签
$(".tip").hide();
//隐藏tip
})
})
</script>
</body>
</html>
9.添加标注
// 自定义标注
let Icon = new BMap.Icon(
'./assets/start_point.png',
// 图片的地址
new BMap.Size(36,42),
// 显示图片的大小
{imageSize:new BMap.Size(36,42),anchor:new BMap.Size(18,42)})
// 把原始图片缩小为 36,42, 偏移到底部中心区域,(默认是左上角)
var marker = new BMap.Marker(point,{icon:Icon})
// 创建一个标注
map.addOverlay(marker);
// 添加标注到地图