Add SEO metadata and security headers
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
# 右键菜单 (ContextMenu)
|
||||
|
||||
右键菜单可以绑定到地图底图或覆盖物上,提供快捷操作功能。
|
||||
|
||||
## 创建菜单
|
||||
|
||||
```javascript
|
||||
// 创建右键菜单实例
|
||||
const contextMenu = new AMap.ContextMenu();
|
||||
|
||||
// 添加菜单项
|
||||
contextMenu.addItem('放大一级', function() {
|
||||
map.zoomIn();
|
||||
}, 0); // 第三个参数是排序权重
|
||||
|
||||
contextMenu.addItem('缩小一级', function() {
|
||||
map.zoomOut();
|
||||
}, 1);
|
||||
|
||||
contextMenu.addItem('设置中心点', function() {
|
||||
map.setCenter(contextMenuPos); // 使用保存的点击位置
|
||||
}, 2);
|
||||
```
|
||||
|
||||
## 绑定事件
|
||||
|
||||
### 1. 绑定到地图
|
||||
|
||||
```javascript
|
||||
let contextMenuPos;
|
||||
|
||||
map.on('rightclick', function(e) {
|
||||
contextMenuPos = e.lnglat; // 记录右键点击的位置
|
||||
contextMenu.open(map, e.lnglat);
|
||||
});
|
||||
```
|
||||
|
||||
### 2. 绑定到覆盖物 (如 Marker)
|
||||
|
||||
```javascript
|
||||
const marker = new AMap.Marker({
|
||||
position: [116.397, 39.909]
|
||||
});
|
||||
map.add(marker);
|
||||
|
||||
const markerMenu = new AMap.ContextMenu();
|
||||
markerMenu.addItem('删除标记', function() {
|
||||
map.remove(marker);
|
||||
});
|
||||
|
||||
marker.on('rightclick', function(e) {
|
||||
markerMenu.open(map, e.lnglat);
|
||||
});
|
||||
```
|
||||
|
||||
## 动态菜单
|
||||
|
||||
你可以在事件回调中动态修改菜单项。
|
||||
|
||||
```javascript
|
||||
map.on('rightclick', function(e) {
|
||||
contextMenu.removeItem('添加标记', function(){}); // 先移除旧的(如果需要)
|
||||
|
||||
// 根据条件动态添加
|
||||
if (map.getZoom() < 10) {
|
||||
contextMenu.addItem('缩放至详细级别', () => map.setZoom(15), 0);
|
||||
}
|
||||
|
||||
contextMenu.open(map, e.lnglat);
|
||||
});
|
||||
```
|
||||
Reference in New Issue
Block a user