Javascript ol-debug.js-断言失败:第三条指令应为数字

Javascript ol-debug.js-断言失败:第三条指令应为数字,javascript,debugging,openlayers-3,assertions,Javascript,Debugging,Openlayers 3,Assertions,我正在将一个在线应用程序从OpenLayers 3.0升级到当前版本3.9 更改为新的vector api()时,我收到以下错误(使用ol-debug.js): 断言失败:第三条指令应为数字 goog.debug.Error@/InViTo_3/js/ol debug.js?ver=20140502:2606:17 goog.asserts.AssertionError@。。。 /InViTo_3/js/ol debug.js?ver=20140502:4307:1 goog.asserts.d

我正在将一个在线应用程序从OpenLayers 3.0升级到当前版本3.9

更改为新的vector api()时,我收到以下错误(使用ol-debug.js):

断言失败:第三条指令应为数字

goog.debug.Error@/InViTo_3/js/ol debug.js?ver=20140502:2606:17 goog.asserts.AssertionError@。。。 /InViTo_3/js/ol debug.js?ver=20140502:4307:1 goog.asserts.doAssertFailure\uuu@。。。 /InViTo_3/js/ol debug.js?ver=20140502:4366:11 goog.asserts.assert@ ... /InViTo_3/js/ol debug.js?ver=20140502:4396:1 ol.render.canvas.Replay.prototype.Replay\u@。。。 /InViTo_3/js/ol debug.js?ver=20140502:60032:1 ol.render.canvas.Replay.prototype.Replay@。。。 /InViTo_3/js/ol debug.js?ver=20140502:60094:1 ol.render.canvas.ReplayGroup.prototype.replay@。。。 /InViTo_3/js/ol debug.js?ver=20140502:61576:1 ol.renderer.canvas.VectorLayer.prototype.composeFrame@。。。 /InViTo_3/js/ol debug.js?ver=20140502:74555:1 ol.renderer.canvas.Map.prototype.renderFrame@。。。 /InViTo_3/js/ol debug.js?ver=20140502:74969:7 ol.Map.prototype.renderFrame_@。。。 /InViTo_3/js/ol debug.js?ver=20140502:84629:3 goog.async.AnimationDelay.prototype.doAction\uU@。。。 /InViTo_3/js/ol debug.js?ver=20140502:39611:3

实际上,我使用geojsons构建了两个向量层:

source: new ol.source.Vector({
    features: (new ol.format.GeoJSON()).readFeatures( jsondata, {featureProjection: 'EPSG:' + jsondata.srid} )
})
第一层(多段线)工作正常。 加载第二个(多边形)会导致错误,并使所有贴图不稳定(未正确刷新)

在以下位置报告了类似的错误: 我试图明确这个投影,但没用

下面是错误演示:

谢谢,,
Rickyx

您正在使用字符串,例如
“1”
作为某些功能样式的线宽。断言错误表明宽度必须是一个数字:

Yesss!我应该如何使用断言来认识到这个错误?谢谢你,瑞克斯@Rickyx和大多数JS应用程序一样,ol3并不总是检查输入的类型。在实际用于某些操作之前,通常会接受无效输入。无效输入可能会导致各种问题。在本例中,在渲染器中触发了断言。如果你得到一个异常,找到它的来源并沿着调用链向上。