vue项目中给地图中省份加上边框

   loadBoundaryMap() {
      var textStyle = new Text({
        font: "12px 微软雅黑",
        fill: new Fill({
          color: "#333",
        }),
      });

      // 设置文本内容
      textStyle.setText("");

      var style = new Style({
        stroke: new Stroke({
          color: "#3d9e98",
          width: 5,
        }),
        fill: new Fill({
        color: "rgba(237, 243, 243, 0.3)" // 绿色的填充,rgba(237, 243, 243, 0.2) 表示绿色,第四个参数是透明度
        }),
        text: textStyle, // 将文本样式应用到图层样式中
      });

      const vectorSource = new VectorSource({
        url: "data/hubei.json",
        format: new GeoJSON(),
      });

      // 创建一个图层
      this.vectorLayer = new VectorLayer({
        zIndex: 0,
        source: vectorSource,
      });

      // 将图层添加到地图中
      this.map.addLayer(this.vectorLayer);
     

      // 在加载完成后执行回调
      vectorSource.once('change', () => {
        if (vectorSource.getState() === 'ready') {
          // 获取地图数据的范围
          const dataExtent = vectorSource.getExtent();
          //将样式应用到图层
          this.vectorLayer.setStyle(style);
          // 计算视图的中心
          const center = getCenter(dataExtent);

          // 设置视图的中心和缩放级别,以确保地图数据居中显示
          this.map.getView().setCenter(center);
          this.map.getView().fit(dataExtent, {
            padding: [50, 50, 50, 50], // 可选的填充以确保地图数据不会紧贴地图边缘
          });
        }
      });
    },

        只需要将代码放入地图相关代码中,然后调用 loadBoundaryMap()函数即可。但是需要注意的是,要将代码中的url路径改为自己需要加边框的json路径,对应的省份json数据格式可以到DataV.GeoAtlas地理小工具系列中去下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值