需求:要求地图只能在一个固定的可视范围内拖动。
准备材料:arcgis for js 4.X

监听地图拖动事件

//可视范围设置
this.view.on('drag', () => {
    // 获取操作图层的范围
    this.showExtent()
})

实时获取当前view的extent然后与提前设定的四制范围做较比,任意一边超出都回跳到指定范围MaxfullExtent

async showExtent(){
      const Extent = await arcgisPackage.Extent
      const SpatialReference = await arcgisPackage.SpatialReference
      let MaxfullExtent={
        xmin: 99.792016726,
        ymin: 25.557485039,
        xmax: 108.872216922,
        ymax: 30.166249687
      }
      let ext=this.view.extent;    
        if(ext.xmin<MaxfullExtent.xmin||ext.xmax>MaxfullExtent.xmax||ext.ymax>MaxfullExtent.ymax||ext.ymin<MaxfullExtent.ymin){
        let fullExtent = new Extent(
          {
            ...MaxfullExtent, 
            spatialReference:new SpatialReference({ wkid: parseInt(4490) })//SpatialReference设置地图坐标系
          }
        );
        this.view.goTo(fullExtent)
      }
    },

友人A
81 声望11 粉丝