bmap-libs
百度地图插件
使用说明
安装
npm install bmap-libs
yarn add bmap-libs
使用
import bmapLibs from 'bmap-libs';
bmapLibs();
const multiPolyline = new BMapGLLib.MultiPolyline(points, options);
const marker = new BMapGLLib.Marker(point, content, options);
const popup = new BMapGLLib.Popup(content, options);
popup.setPoint(point);
marker.bindPopup(popup);
注意
不要通过直接调用 overlay.remove()
来移除图层!!!正确的移除方法如下:
map.removeOverlay(overlay);
map.clearOverlays();
MultiPolyline
示例
let multiPoints = [
[
'116.27961508447355,40.049453414029834',
'116.2801675423622,40.04985729053617',
'116.2798172032133,40.050264616535344',
'116.28072000025082,40.050461374825595',
'116.2815823735404,40.05003679043139',
'116.28114220384052,40.04954661651461',
],
['116.27966898280415,40.04863529781763', '116.28142067854861,40.04870778952721'],
];
multiPoints = multiPoints.map((points) => points.map((point) => new BMapGL.Point(...point.split(','))));
const multiPolyline = new BMapGLLib.MultiPolyline(multiPoints, { strokeColor: 'red' });
map.addOverlay(multiPolyline);
参数
参数 | 类型 | 描述 |
---|
points | Array | 多段线的 Point 二维数组 |
options | Object | 多段线的配置 |
options
属性 | 类型 | 默认值 | 描述 |
---|
zIndex | Number | 1 | 层级 |
strokeColor | String | 'blue' | 多段线颜色 |
strokeWeight | Number | 2 | 多段线的宽度,以像素为单位 |
strokeOpacity | Number | 1 | 多段线的透明度,取值范围 0 - 1 |
delay | Number | 100 | 防抖延迟,单位毫秒,值为 0 则不开启防抖 |
pane | String | 'markerPane' | 添加到的面板(可选值见 map.getPanes()返回值) |
方法
名称 | 返回值 | 备注 |
---|
on(<String>type, <Function>listener) | | 绑定事件 |
off(<String>type, <Function>listener) | | 解绑事件 |
isVisible() | Boolean | 查看多段线图层可见性 |
show() | | 显示多段线图层 |
hide() | | 隐藏多段线图层 |
getZIndex() | Number | 获取 zIndex |
setZIndex(<Number>zIndex) | | 设置 zIndex |
Marker
示例
const point = new BMapGL.Point(116.27961508447355, 40.049453414029834);
const div = document.createElement('div');
div.style.width = '40px';
div.style.height = '40px';
div.style.background = 'rgba(0, 0, 255, .5)';
const marker = new BMapGLLib.Marker(point, div, { zIndex: 2, offset: new BMapGL.Size(0, 0) });
marker.on('click', () => {
console.log('marker click');
});
map.addOverlay(marker);
参数
参数 | 类型 | 描述 |
---|
point | Object | 坐标点 |
content | String|HTMLElement | dom 字符串或者 dom 元素 |
options | Object | 配置 |
options
属性 | 类型 | 默认值 | 描述 |
---|
zIndex | Number | 1 | 层级 |
offset | Size | Size(0, 0) | 偏移量 |
className | String | '' | css 类名 |
pane | String | 'markerPane' | 添加到的面板 |
方法
名称 | 返回值 | 备注 |
---|
on(<String>type, <Function>listener) | | 绑定事件 |
off(<String>type, <Function>listener) | | 解绑事件 |
isVisible() | Boolean | 查看 marker 可见性 |
show() | | 显示 marker |
hide() | | 隐藏 marker |
update() | | 更新 marker |
getZIndex() | Number | 获取 zIndex |
setZIndex(<Number>zIndex) | | 设置 zIndex |
getPosition() | | 返回标注的地理坐标 |
bindPopup(<Popup>popup) | | 绑定 popup |
unbindPopup() | | 解绑 popup |
getPopup() | Popup | 获取 popup |
openPopup() | | 打开 popup |
closePopup() | | 关闭 popup |
isPopupOpen() | Boolean | 查看 popup 是否打开 |
示例
const point = new BMapGL.Point(116.27961508447355, 40.049453414029834);
const popupEl = document.createElement('div');
popupEl.style.width = '200px';
popupEl.style.height = '120px';
popupEl.style.border = '1px solid black';
popupEl.style.background = 'rgba(255, 255, 255, .5)';
const popup = new BMapGLLib.Popup(popupEl, { offset: new BMapGL.Size(0, -10), visible: true });
popup.setPoint(point);
map.addOverlay(popup);
marker.bindPopup(popup);
map.addOverlay(marker);
参数
参数 | 类型 | 描述 |
---|
content | String|HTMLElement | dom 字符串或者 dom 元素 |
options | Object | 配置 |
options
属性 | 类型 | 默认值 | 描述 |
---|
zIndex | Number | 1 | 层级 |
offset | Size | Size(0, 0) | 偏移量 |
className | String | '' | css 类名 |
visible | Boolean | true | 初始可见性 |
pane | String | 'labelPane' | 添加到的面板 |
方法
名称 | 返回值 | 备注 |
---|
on(<String>type, <Function>listener) | | 绑定事件 |
off(<String>type, <Function>listener) | | 解绑事件 |
isVisible() | Boolean | 查看 popup 可见性 |
show() | | 显示 popup |
hide() | | 隐藏 popup |
update() | | 更新 popup |
setPoint(<Point>point) | | 设置坐标点 |
getZIndex() | Number | 获取 zIndex |
setZIndex(<Number>zIndex) | | 设置 zIndex |