Я обновляю онлайн-приложение от OpenLayers 3.0 до текущей версии 3.9.ol-debug.js - Утверждение не выполнено: 3-я инструкция должна быть номером
Переход к новому вектору API (https://github.com/openlayers/ol3/releases/tag/v3.5.0) я получаю следующее сообщение об ошибке (с помощью ПР-debug.js):
Утверждение не удалось: третья команда должна быть числом
goog.debug. Ошибка @ ... /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_ @ ... /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_ @ ... /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_ @ ... /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})
})
Первый слой (полилинии) работает отлично. Загрузка второй (многоугольники) вызывает ошибку и делает все карты неустойчивыми (не освежающими правильно).
Аналогичная ошибка указана по адресу: https://groups.google.com/forum/#!topic/ol3-dev/hA5wNYL3CxE Я попытался выразить проекцию, но это не помогло.
Вот демонстрационная ошибка: http://130.192.92.243:8000/~invitest/?page_id=2&pname=project&act=view&cid=259
Спасибо, Rickyx
Yesss! Как я должен был осознать эту ошибку, используя утверждения? Спасибо, Рики! – Rickyx
@Rickyx Как и большинство приложений JS, ol3 не всегда проверяет тип входов. Недействительные входы обычно принимаются до тех пор, пока они фактически не используются для какой-либо операции. Недопустимый ввод может вызвать всевозможные проблемы. В этом случае в рендерере было инициировано утверждение. Если вы получаете исключение, найдите его источник и следуйте цепочке вызовов вверх. –