0
  • 我正在使用开放的第 6 层库进行地图渲染和事件。

  • 我的底图是街道地图

  • 我的应用程序需要显示图像光栅然后

    • 绘制多边形,然后
    • 在多边形内(无论图像是什么,多边形的底部都应该显示光栅的其他区域应该不可见)
  • 我努力了

const imageProjection = new Projection({
        code: 'orto-image',
        units: 'pixels',
        extent: buffer(extent, 512)
      });

const imgSource = new Static({
        url: this.imgURL,
        projection: imageProjection,
        imageExtent: extent,
        imageSize: [this.imageData.width, this.imageData.height],
        imageLoadFunction : (image) => {
          image.getImage().src = this.imgURL;
          if (image.resolution === undefined) {
            image.resolution = (image.extent[3] - image.extent[1]) / image.image_.height;
          }
          image.state = 2; // ImageState.LOADED;
          image.unlistenImage_();
          image.changed();
        }
      });
const imageLayer = new ImageLayer({
          source: imgSource
        });
imageLayer.set('name', `testing`);
imageLayer.set('type', 'IMAGE');
this.currentMap().addLayer(imageLayer);
  • 上图添加到地图。

  • 然后在光栅图像上绘制一个多边形(在底图上)

const polygonFeature = new Feature(
        new Polygon([arrayData])/* .transform('EPSG:4326', 'EPSG:3857') */);
      const source = new VectorSource({
        style: new Style({
          fill: new Fill({
            color: 'black'
          })
        })
      });
      source.addFeature(polygonFeature);
      const layer = new VectorLayer({
        source,
      });
      layer.set('name', 'polygonLayer');
this.currentMap().addLayer(layer);
4

0 回答 0