百度地图
百度地图笔记
1.获取密钥
2.获取JavaScript API服务方法
//参数v表示您加载API的版本,使用JavaScript APIv1.4及以前版本可使用此方式引用。
http://api.map.baidu.com/api?v=1.4
//使用JavaScript APIv2.0请先申请密钥ak,按此方式引用。
http://api.map.baidu.com/api?v=2.0&ak=您的密钥
JavaScript API v1.4及以前版本无须申请密钥(ak)。
3.步骤
1.创建地图实例
var map = new BMap.Map("container");
2.创建点坐标(经度,纬度)
var point = new BMap.Point(116.404, 39.915);
3.地图初始化
map.centerAndZoom(point, 15);
权限验证失败原因
- 尚未在API控制台申请ak,即'...ak=';
- 密钥设置错误
- 密钥未通过白名单
- API控制台关闭JavaScript API时会报错;
- 错误的使用“服务端AK”用于 JavaScript API,JS API只支持浏览器类型的ak(自2016年1月15日升级)
百度地图的控件
地图API中提供的控件有:
- Control:控件的抽象基类,所有控件均继承此类的方法、属性。通过此类您可实现自定义控件。
- NavigationControl:地图平移缩放控件,PC端默认位于地图左上方,它包含控制地图的平移和缩放的功能。移动端提供缩放控件,默认位于地图右下方。
- OverviewMapControl:缩略地图控件,默认位于地图右下方,是一个可折叠的缩略地图。
- ScaleControl:比例尺控件,默认位于地图左下方,显示地图的比例关系。
MapTypeControl:地图类型控件,默认位于地图右上方。 - CopyrightControl:版权控件,默认位于地图左下方。
- GeolocationControl:定位控件,针对移动端开发,默认位于地图左下方。
添加控件
var map = new BMap.Map("container");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);
map.addControl(new BMap.NavigationControl());
**可以使用Map.addControl()方法向地图添加控件。**
控件的显示位置 和偏移
| 常量 | 描述 |
|---|---|
| BMAP_ANCHOR_TOP_LEFT | 控件将定位到地图的左上角 |
| BMAP_ANCHOR_TOP_RIGHT | 控件将定位到地图的右上角 |
| BMAP_ANCHOR_BOTTOM_LEFT | 控件将定位到地图的左下角 |
| BMAP_ANCHOR_BOTTOM_RIGHT | 控件将定位到地图的右下角 |
实现代码
//地图平移缩放控件
map.addControl(new BMap.NavigationControl({
anchor:BMAP_ANCHOR_TOP_RIGHT
}));
控件的显示方式
|常量|描述|
| :-------- |: --------|
|BMAP_NAVIGATION_CONTROL_LARGE | 标准的平移缩放控件(包括平移、缩放按钮和滑块)|
|BMAP_NAVIGATION_CONTROL_SMALL|仅包含平移和缩放按钮|
|BMAP_NAVIGATION_CONTROL_PAN|仅包含平移按钮|
|BMAP_NAVIGATION_CONTROL_ZOOM|仅包含缩放按钮|
实现代码
//地图平移缩放控件
map.addControl(new BMap.NavigationControl({
//仅包含平移按钮
type:BMAP_NAVIGATION_CONTROL_PAN
}));
示例
<script type="text/javascript">
// 百度地图API功能
var map = new BMap.Map("allmap");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);
// 添加带有定位的导航控件
var navigationControl = new BMap.NavigationControl({
// 靠左上角位置
anchor: BMAP_ANCHOR_TOP_LEFT,
// LARGE类型
type: BMAP_NAVIGATION_CONTROL_LARGE,
// 启用显示定位
enableGeolocation: true
});
map.addControl(navigationControl);
// 添加定位控件
var geolocationControl = new BMap.GeolocationControl();
geolocationControl.addEventListener("locationSuccess", function(e){
// 定位成功事件
var address = '';
address += e.addressComponent.province;
address += e.addressComponent.city;
address += e.addressComponent.district;
address += e.addressComponent.street;
address += e.addressComponent.streetNumber;
alert("当前定位地址为:" + address);
});
geolocationControl.addEventListener("locationError",function(e){
// 定位失败事件
alert(e.message);
});
map.addControl(geolocationControl);
</script>
关于 百度地图 HTTPS 的说明
JavaScript API首家支持Https,已全面开放,无需申请Https服务可直接使用。
配置:
如果使用JavaScript API ,需要加一个特殊字段 (s=1):
https://api.map.baidu.com/api?v=2.0&ak=你的密钥&s=1;
对于Web API 无需加特殊字段,直接使用 HTTPS协议访问即可,如Geocoding:
https://api.map.baidu.com/geocoder/v2/?ak=你的秘钥&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1
如果对数据安全要求高,建议使用 POST请求,避免把请求参数放到 URI中敏感信息被泄露。
鼠标滚轮缩放与鼠标拖拽
map.enableScrollWheelZoom(); //启用滚轮放大缩小,默认禁用
map.enableContinuousZoom(); //启用地图惯性拖拽,默认禁用
posted on 2018-04-17 16:48 undefined00 阅读(643) 评论(0) 收藏 举报
浙公网安备 33010602011771号