Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 开放层6-图像层与矢量层结合_Javascript_Image_Gis_Openlayers_Openlayers 6 - Fatal编程技术网

Javascript 开放层6-图像层与矢量层结合

Javascript 开放层6-图像层与矢量层结合,javascript,image,gis,openlayers,openlayers-6,Javascript,Image,Gis,Openlayers,Openlayers 6,我试图将图像层与向量层结合起来,但当我添加投影以查看向量时,向量消失了。我做错什么了吗 以下是我试图实现的一个示例: 我希望下面的这两层在视图中结合在一起 对于那些搜索答案的人,给出了一个很好的解决方案,其中设置的范围值等于向量层的延伸。再次感谢你 var extent = [-e,-e,e,e]; var source = new VectorSource({}); var vectorLayer = new VectorLayer({ source: source, }); v

我试图将图像层与向量层结合起来,但当我添加投影以查看向量时,向量消失了。我做错什么了吗

以下是我试图实现的一个示例:

我希望下面的这两层在视图中结合在一起


对于那些搜索答案的人,给出了一个很好的解决方案,其中设置的范围值等于向量层的延伸。再次感谢你

var extent = [-e,-e,e,e];
var source = new VectorSource({});

var vectorLayer = new VectorLayer({
    source: source,
});

var imageLayer = new ImageLayer({
    source: new Static({
        url: "https://imgs.xkcd.com/comics/online_communities.png",
        projection: new Projection({
            units: "pixels",
            extent: extent
        }),
        imageExtent: extent,
    }),
});
vectorLayer.setZIndex(1);
imageLayer.setZIndex(0);

var olMap = new Map({
    target: null,
    layers: [imageLayer, vectorLayer],

    view: new View({


    projection: new Projection({
          units: "pixels",
              extent: extent,
       }),
        center: getCenter(extent),
   // center: [0,0],
        zoom: 0,
    }),
});

class App extends Component {
    componentDidMount() {
    olMap.setTarget("olmap");
        vectorLayer.getSource().addFeatures(features);
    }

    render() {
        return (
            <div className="App">
                <div id="olmap" style={{ width: "100%", height: "80%" }} />
            </div>
        );
    }
}

他还分享了一个stackblitz:

你不太可能看到任何东西,因为你有50个特征随机分布在4500000个单位上,而图像只有2048个单位。如果将两个区段设置为相似,则特征将与图像重叠。我理解您的意思,但即使我更改,它们也不在正确的位置。那我该怎么办呢?范围=[-e,-e,e,e];将符合图像中的所有特征,你是对的。这确实起到了作用。非常感谢你!