openlayers6改变底图颜色为暗色系

import TileLayer from "ol/layer/Tile"; // 瓦片图层类
import XYZ from "ol/source/XYZ"; // XYZ格式的切片数据,继承于TileImage

const layer = new TileLayer({
    source: new XYZ({
        url: 在线地图url,
        crossOrigin: "anonymous",
        tileLoadFunction: function(imageTile, src) {
            // 使用滤镜 将白色修改为深色
            const img = new Image();
            // img.crossOrigin = ''
            // 设置图片不从缓存取,从缓存取可能会出现跨域,导致加载失败
            img.setAttribute("crossOrigin", "anonymous");
            img.onload = function() {
                const canvas = document.createElement("canvas");
                const w = img.width;
                const h = img.height;
                canvas.width = w;
                canvas.height = h;
                const context = canvas.getContext("2d");
                context.filter = "grayscale(98%) invert(100%) sepia(20%) hue-rotate(180deg) saturate(1600%) brightness(80%) contrast(90%)";
                context.drawImage(img, 0, 0, w, h, 0, 0, w, h);
                imageTile.getImage().src = canvas.toDataURL("image/png");
            };
            img.src = src;
        }
    }),
    visible: true
});
map.addLayer(layer);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenLayers 是一种用于创建交互式地图应用程序的开源 JavaScript 库。其中的 ImageStatic 是 OpenLayers 提供的一个类,用于加载并显示普通图片作为底图。 使用 ImageStatic 类,我们可以通过指定图片的 URL、范围和投影等属性来创建一个底图图层。底图可以是任何普通的图片文件,比如 PNG、JPEG 等格式。 首先,我们需要创建一个 ImageStatic 实例,并传入图片的 URL。例如,使用以下代码创建一个名为 imageLayer 的底图图层: ```javascript var imageLayer = new ol.layer.Image({ source: new ol.source.ImageStatic({ url: 'path_to_image.png', imageExtent: [minX, minY, maxX, maxY], // 图片在地图坐标下的范围 projection: 'EPSG:4326' // 图片的投影方式 }) }); ``` 在上述代码中,`url` 参数指定了图片文件的路径。`imageExtent` 参数定义了图片在地图上所占的范围。 接下来,我们需要创建一个地图实例,并将底图图层添加到地图上。例如,使用以下代码创建一个名为 map 的地图: ```javascript var map = new ol.Map({ target: 'map-container', // 地图渲染的容器元素 ID layers: [imageLayer], // 添加底图图层 view: new ol.View({ center: ol.proj.fromLonLat([longitude, latitude]), // 地图中心点的经纬度坐标 zoom: 10 // 初始缩放级别 }) }); ``` 上述代码中,`target` 参数指定了地图渲染的容器元素的 ID。`layers` 参数用于添加底图图层。 最后,我们可以将地图应用程序与网页中的某个元素关联起来。例如,在 HTML 中创建一个名为 map-container 的 div 元素,如下所示: ```html <div id="map-container" style="width: 100%; height: 400px;"></div> ``` 通过以上步骤,我们可以使用 OpenLayers 的 ImageStatic 类加载普通图片作为底图,并在地图应用程序中显示出来。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值