mapbox添加贴图


/**
 * mapbox添加贴图
 * @param {map} map mapbox地图对象
 * @param {string} url 图片地址
 * @param {number} minLon 贴图经纬度范围
 * @param {number} maxLon 
 * @param {number} minLat 
 * @param {number} maxLat 
 * @param {number} opacity 透明度
 * @param {string} layerName 图层名
 */
export const addImage = ({
    map,
    url,
    minLon,
    maxLon,
    minLat,
    maxLat,
    opacity,
    layerName
}) => {
    fetch(url)
        .then(response => response.blob())  // 获取图片数据并将其转换为 Blob 对象
        .then((blob) => {
            // 使用 FileReader 读取 Blob 数据
            const reader = new FileReader();
            reader.readAsDataURL(blob);  // 以 Data URL 形式读取 Blob 数据
            reader.onload = () => {
                // 获取 Base64 格式的图片数据
                const data_base64 = reader.result;
                map.addSource(layerName, {
                    type: 'image',
                    url: data_base64,
                    coordinates: [
                        [minLon, maxLat],
                        [maxLon, maxLat],
                        [maxLon, minLat],
                        [minLon, minLat]
                    ]
                });
                map.addLayer({
                    id: layerName,
                    type: 'raster',
                    source: layerName,
                    paint: {
                        'raster-opacity': opacity
                    }
                });
            };
        })
        .catch(error => console.error('图片获取失败,请检查url', error));
};

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值