ContextMenu
此类表示右键菜单。您可以在地图上添加自定义内容的右键菜单。
构造函数
| 构造函数 | 描述 |
|---|---|
| ContextMenu() | 创建一个右键菜单实例 |
实例方法
| 方法 | 返回值 | 描述 |
|---|---|---|
| addItem(item: MenuItem) | none | 添加菜单项 |
| getItem(index: Number) | MenuItem | 返回指定索引位置的菜单项,第一个菜单项的索引为0 |
| removeItem(item: MenuItem) | none | 移除菜单项 |
| addSeparator() | none | 添加分隔符 |
| removeSeparator(index: Number) | none | 移除指定索引位置的分隔符,第一个分隔符的索引为0 |
事件
| 事件 | 参数 | 描述 |
|---|---|---|
| open | {type: string, target: any, point: Point, pixel: Pixel} | 右键菜单打开时触发,事件参数point和pixel分别表示菜单开启时的地理和像素坐标点 |
| close | {type: string, target: any, point: Point, pixel: Pixel} | 右键菜单关闭时触发,事件参数point和pixel分别表示菜单开启时的地理和像素坐标点 |
示例
创建右键菜单:
ts
// 创建右键菜单
const menu = new BMapGL.ContextMenu();
// 创建菜单项
const menuItem = new BMapGL.MenuItem('放大', function(point) {
map.zoomIn();
});
// 添加菜单项
menu.addItem(menuItem);
// 添加分隔符
menu.addSeparator();
// 将菜单添加到地图
map.addContextMenu(menu);监听菜单事件:
ts
menu.addEventListener('open', function(e) {
console.log('菜单打开', e.point, e.pixel);
});
menu.addEventListener('close', function(e) {
console.log('菜单关闭', e.point, e.pixel);
});常见用途
地图操作:
- 缩放控制
- 视角调整
- 地图类型切换
标注操作:
- 添加标注
- 编辑标注
- 删除标注
注意事项
菜单创建:
- 合理组织菜单项顺序
- 适当使用分隔符分组
- 控制菜单项数量
事件处理:
- 注意获取正确的坐标信息
- 处理菜单项点击回调
- 合理使用打开关闭事件
