2015-10-01 2 views
2

Я обновляю онлайн-приложение от 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

ответ

2

Вы используете строки, такие как "1" как ширина линии в ваших стилей для некоторых функций. Ошибка утверждения указывает, что ширина должна быть числом: http://openlayers.org/en/v3.9.0/apidoc/ol.style.Stroke.html

+0

Yesss! Как я должен был осознать эту ошибку, используя утверждения? Спасибо, Рики! – Rickyx

+0

@Rickyx Как и большинство приложений JS, ol3 не всегда проверяет тип входов. Недействительные входы обычно принимаются до тех пор, пока они фактически не используются для какой-либо операции. Недопустимый ввод может вызвать всевозможные проблемы. В этом случае в рендерере было инициировано утверждение. Если вы получаете исключение, найдите его источник и следуйте цепочке вызовов вверх. –