Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.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/2/ruby-on-rails/68.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 将图层添加到地图后获取typeError_Javascript_Openlayers 3 - Fatal编程技术网

Javascript 将图层添加到地图后获取typeError

Javascript 将图层添加到地图后获取typeError,javascript,openlayers-3,Javascript,Openlayers 3,我发现这类错误: “无法读取null的属性‘closure_uid_521373967’。” 这发生在我创建了尚未包含任何功能的源之后 var vectorSource = new ol.source.Vector({ }); 然后我做一层 var vectorLayer = new ol.layer.Vector({ source: vectorSource }); 然后我初始化了地图: var map = new ol.Map({ layers: [new ol

我发现这类错误: “无法读取null的属性‘closure_uid_521373967’。”

这发生在我创建了尚未包含任何功能的源之后

var vectorSource = new ol.source.Vector({

});    
然后我做一层

var vectorLayer = new ol.layer.Vector({
    source: vectorSource
});
然后我初始化了地图:

var map = new ol.Map({
    layers: [new ol.layer.Tile({ source: new ol.source.OSM({url:"http://tile.openstreetmap.org/{z}/{x}/{y}.png"}) }), vectorLayer],
    target: document.getElementById('map'),
    view: new ol.View({
        center: [0, 0],
        zoom: 3
    })
});

在我的家里,当它像这里这样简单时,它似乎工作得很好,但当我试图在我的工作中使用它时,scanario有点复杂,我缺少我之前提到的那种错误。

请查看此片段

  • 将图层定义与地图实例化分离是一个好主意。后者使事情变得非常方便,但也使调试变得困难

  • 考虑到这一点,我定义了OSM层和向量层,并将它们添加到地图中

  • 您不需要使用getElementById。您只需提供div的id作为映射的目标

  • 我无法复制您的类型错误。不过,我怀疑这是由于添加了不必要的getElementById

  • 你能发布一个链接到不起作用的代码吗

    //层
    var vectorSource=新的ol.source.Vector({
    });
    var vectorLayer=新ol.layer.Vector({
    来源:新ol.source.Vector({
    url:vectorSource,
    })
    });
    var osmLayer=新ol.layer.Tile({
    来源:new ol.source.OSM()
    });
    var map=新ol.map({
    图层:[osmLayer,vectorLayer],
    目标:“地图”,
    视图:新ol.view({
    中间:[0,0],
    缩放:3
    })
    });
    
    
    
    你的代码看起来不错,可能是其他原因。你知道这个错误是从哪里来的吗查看
    url:vectorSource
    -这不可能是对的。@ahocevar,我100%同意你的说法,那也不应该是对的。我以这种方式编写代码片段的目的是尽量减少我所做的更改数量,以便我们能够测试被破坏的内容。他试图添加一个没有来源的图层,正如您所指出的,这也是一个问题,但这与他第一次提到的问题不同D