Skip to content

限制地图移动和缩小

loading

默认情况,地图是可以随意拖动的,但在一些场景中,我们希望限制地图只能在某个区域内移动,以防止地图拖的找不到了,这对显示小范围地图比较有用。

ts
// 限制地图移动范围
const minPan = map.geo2world(new THREE.Vector3(107.6, 37.5)); // 西南角经纬度
const maxPan = map.geo2world(new THREE.Vector3(110.6, 35.3)); // 东北角经纬度

const vec = new THREE.Vector3();
viewer.controls.addEventListener("change", function () {
  vec.copy(viewer.controls.target);
  viewer.controls.target.clamp(minPan, maxPan);
  vec.sub(viewer.controls.target);
  viewer.camera.position.sub(vec);
});

另外,可以通过设置地图离摄像机的最大距离,可以限制地图缩放,使地图不要缩的太小。

ts
// 限制地图缩小
viewer.controls.maxDistance = 1000000;

Released under the MIT License.