高德地图添加图片覆盖物,限制拖拽缩放范围

 第一步  : 初始化地图

// 创建地图
      creatMap() {
        this.map = new AMap.Map("mapView", {
          rotateEnable: true,
          pitchEnable: true,
          zoom: 14.5,
        });
      },

第二步 :将图片覆盖到高德地图上 是图片随着地图放大缩小和拖拽位移

         //声明覆盖物
        const imageLayer = new AMap.ImageLayer({
          url: "图片链接",
          bounds: new AMap.Bounds(
                  [xxx, xxxx], //右上角经纬度
                  [xxx, xxxx]  //左下角经纬度
          ),//范围
          zooms: [12, 20],
        });

          //第一步 初始化地图  
         this.map = new AMap.Map("mapView", {
          rotateEnable: true,
          pitchEnable: true,
          zoom: 14.5,
          zooms: [14.5, 20], // 缩放区间
          center: [xxx, xxxx],  // 中心点坐标
          resizeEnable: false, //是否监控地图容器尺寸变化
          showLabel: false,//是否显示标注
          mapStyle: "amap://styles/30a69840de521825d1c73041ed88fbb6",
          layers: [AMap.createDefaultLayer(), imageLayer],//叠加图层
        });

第三步 : 限制地图的放大缩小范围已经在map的zooms中限制了,接下来主要是限制地图的拖拽区域,超出区域后回弹到限制区域范围 

此处高德api有现成的方法  :https://lbs.amap.com/demo/javascript-api/example/map/limit-map-show-range

       logMapInfo() {
        var limitBounds = this.map.getLimitBounds();
        if (limitBounds) {
          document.querySelector("#ne").innerText = limitBounds.northeast.toString();
          document.querySelector("#sw").innerText = limitBounds.southwest.toString();
        } else {
          document.querySelector("#ne").innerText = document.querySelector("#sw").innerText = "未限定";
        }
      },
      
      lockMapBounds(){
        var bounds = this.map.getBounds();
        this.map.setLimitBounds(bounds);
        this.logMapInfo();
      },
在creatMap方法里调用this.lockMapBounds() 就会限制拖拽区域

2023.3.14(补充)

直接声明

imageLayer 

将他add到map即可,前面太麻烦了。

  //声明覆盖物
            const imageLayer = new AMap.ImageLayer({
                url: "",
                bounds: new AMap.Bounds(
                    [120.58, 36.235], //右上角经纬度
                    [120.54, 36.205]  //左下角经纬度
                ),//范围
                zooms: [12, 20],
            });
            _that.map = map;

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
高德地图中,要给圆形覆盖物添加内容,可以使用 `AMap.CircleMarker` 类来创建圆形覆盖物,并结合自定义的 HTML 内容来实现。下面是一个示例代码: ```javascript // 创建地图对象 var map = new AMap.Map('mapContainer'); // 创建圆形覆盖物 var circle = new AMap.CircleMarker({ center: [lng, lat], // 圆心位置,lng为经度,lat为纬度 radius: 100, // 半径,单位为像素 fillColor: '#FF0000', // 填充颜色 strokeColor: '#000000', // 描边颜色 strokeWeight: 2 // 描边宽度 }); // 创建自定义的 HTML 内容 var content = '<div class="circle-content">这是一个圆形覆盖物</div>'; // 将自定义的 HTML 内容添加到圆形覆盖物上 circle.setContent(content); // 将圆形覆盖物添加到地图上 map.add(circle); ``` 在上述代码中,我们首先创建了一个地图对象,并将其放置在 id 为 "mapContainer" 的 DOM 元素中。然后,通过 `new AMap.CircleMarker()` 来创建一个圆形覆盖物,设置了圆心位置、半径、填充颜色、描边颜色和描边宽度等属性。 接下来,我们创建了一个自定义的 HTML 内容,可以根据需要自定义样式和内容。然后,通过调用 `circle.setContent(content)` 将自定义的 HTML 内容添加到圆形覆盖物上。 最后,通过调用 `map.add(circle)` 将圆形覆盖物添加到地图上进行显示。 您可以根据实际需求,修改圆形覆盖物的属性和自定义的 HTML 内容,来满足您的要求。 希望以上信息对您有所帮助!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值