与地图交互
5.1 相机与范围
map.setZoomAndCenter(17,[100.02228,21.67623]);
map.setRotation(0);
map.setPitch(0);
const pixel = map.lngLatToContainer([100.02228,21.67623]);
const position = map.containerToLngLat(pixel);
console.log(map.getBounds(), position);
| 方法 | 参数 / 返回 | 作用 |
|---|---|---|
| setCenter / getCenter | LngLatLike / LngLat | 中心 |
| setZoom / getZoom | number | 缩放 |
| zoomIn / zoomOut | 无 | 增减缩放 |
| panTo | LngLatLike | 平移到位置 |
| panBy | x,y 像素 | 按像素平移 |
| setBounds | Bounds, immediately? | 适配范围 |
| setFitView | overlays?, immediately?, avoid?, maxZoom? | 适配覆盖物;avoid 顺序上、右、下、左 |
| setStatus / getStatus | MapStatus | 设置/获取手势 |
| resize | 无 | 容器显隐或尺寸变化后更新 |
5.2 控件
const scale = new sdk.Scale({position:'LB'});
const toolbar = new sdk.ToolBar({position:'RT',offset:[12,12]});
map.addControl(scale);
map.addControl(toolbar);
position 支持 LT/RT/LB/RB;offset 为 Pixel 或 [x,y]。控件 show/hide 控制显隐,map.removeControl 解除绑定,destroy() 最终释放。
5.3 事件
function onClick(event) { console.log(event.lnglat); }
map.on('click',onClick);
map.once('complete',() => console.log('地图完成一次加载'));
// map.off('click',onClick);
通用事件对象提供 on、once、off;解绑时保留原函数引用。地图当前转发 click、movestart、mapmove、moveend、zoomstart、zoomend、dragstart、dragend,另有 complete、error、themechange。不要假定所有高德事件名均可触发。服务 complete/error 与地图 complete 含义不同。