Files
opencloud/.agents/skills/amap-jsapi-skill/references/view-control.md
T

85 lines
2.8 KiB
Markdown

# 视图控制 (View Control)
高德地图 JSAPI v2.0 提供了强大的 3D 视图控制能力,包括缩放、旋转、俯仰和中心点移动。
## 核心属性
在地图初始化或运行时,可以通过以下属性控制视口:
- **zoom**: 缩放级别 (2 - 20)。
- **center**: 地图中心点 `[lng, lat]`
- **rotation**: 旋转角度 (0 - 360),顺时针。
- **pitch**: 俯仰角度 (0 - 83),0 为垂直向下,83 为接近水平。
## 常用方法
### 1. 缩放 (Zoom)
```javascript
map.setZoom(15); // 设置特定级别
map.zoomIn(); // 放大一级
map.zoomOut(); // 缩小一级
const zoom = map.getZoom(); // 获取当前级别
```
### 2. 移动与平移 (Move/Pan)
```javascript
// 瞬间移动到指定位置
map.setCenter([116.40, 39.90]);
// 平滑移动到指定位置 (带动画)
map.panTo([116.40, 39.90]);
// 同时设置缩放和中心点
map.setZoomAndCenter(14, [116.40, 39.90]);
```
### 3. 3D 控制 (Pitch/Rotation)
```javascript
map.setPitch(45); // 设置俯仰角
map.setRotation(90); // 设置旋转角 (正北为0,顺时针)
```
### 4. 限制显示范围 (Bounds)
限制用户只能在特定区域内浏览地图。
```javascript
const bounds = new AMap.Bounds(
[116.0, 39.0], // 西南角
[117.0, 40.0] // 东北角
);
map.setLimitBounds(bounds);
// 清除限制
map.clearLimitBounds();
```
## 视图自适应
让地图自动调整层级和中心,以显示所有指定的覆盖物。
```javascript
// 自动适配视口
map.setFitView(
[marker1, polygon1], // 覆盖物数组,为空则包含所有
false, // 是否立即过渡 (false 为动画)
[60, 60, 60, 60] // 上下左右的 padding
);
```
## 注意事项
- 容器高度:确保地图容器 div 在 CSS 中有明确的宽度和高度,否则地图无法显示。
- 坐标系:高德地图使用 GCJ-02 坐标系(火星坐标系)。
- 插件加载:可以在 AMapLoader.load 时一次性引入,也可以在使用时通过 AMap.plugin(['AMap.XX'], callback) 动态引入。
- 性能优化:对于 1000 个以上的点标记,强烈建议使用 AMap.LabelMarker 或 AMap.MassMarks 而非普通 AMap.Marker。
- references/map-init.md
- references/security.md
### 说明:
1. **安全配置模块**:在 v2.0 中,这是最常见的报错来源。我在 `0. 安全配置` 中特别强调了 `window._AMapSecurityConfig`
2. **Loader 模式**:官方现在推荐使用异步 Loader 模式,示例代码直接给出了 `AMapLoader` 的写法。
3. **高性能组件**:针对 v2.0 增加了 `LabelMarker` 的引用,这是 WebGL 版本相比 v1.4 的核心优势。
4. **结构化引用**:保持了与你提供的百度地图 Skill 一致的 `references/*.md` 结构,方便 LLM 模拟读取详细文档。