经调查,Google不提供地图api的免费服务,目前百度对个人认证的开发者提供每日 5000 次的静态图免费配额,
做测试足够用了。
(参考文档:https://lbs.baidu.com/solutions/privilege)
使用方法如下:
(参考文档:https://lbs.baidu.com/index.php?title=jspopularGL)
- 注册百度账号
- 在百度地图开放平台 https://lbs.baidu.com,选择上面目录上的 控制台,注册成为开发者,选择成为个人开发者
注册过程需要填写注册目的和认证个人信息,如实回答就好,没有人工审核,正常情况可以直接通过。 - 创建应用,根据需要选择应用类型
- 应用创建完成即可得到访问应用的AK,即api请求中需要用到的密钥
Demo
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html{height:100%}
body{height:100%;margin:0px;padding:0px}
#container{height:100%}
</style>
<script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=您的密钥">
</script>
<body>
<div id="container"></div>
<script src="main.js"></script>
</body>main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30var map = new BMapGL.Map("container");
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 point = new BMapGL.Point(114.4351, 38.0713);
var marker = new BMapGL.Marker(point); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
map.centerAndZoom(point, 15);
var content = "这里是视频拍摄的位置"
var label = new BMapGL.Label(content, { // 创建文本标注
position: point, // 设置标注的地理位置
offset: new BMapGL.Size(2, 2) // 设置标注的偏移量
});
map.addOverlay(label);
label.setStyle({ // 设置label的样式
color: '#000',
fontSize: '30px',
border: '2px solid #1E90FF'
});
label.addEventListener("click", function () {
alert("您点击了标注");
});
效果图: