断言错误:断言失败:坐标数组的长度应与步幅匹配
AssertionError: Assertion failed: length of coordinate array should match stride
我试图在OpenLayers 3地图中创建一些多边形,但遇到了以下错误:
断言错误:断言失败:坐标数组的长度应匹配步幅
我使用的代码如下:
var geometry = new ol.geom.Polygon([
[10.689697265625, -25.0927734375],
[34.595947265625, -20.1708984375],
[38.814697265625, -35.6396484375],
[13.502197265625, -39.1552734375],
[10.689697265625, -25.0927734375]
], "XY");
geometry.transform('EPSG:4326', 'EPSG:3857');
var vectorLayer = new ol.layer.Vector({
map: this.map,
source: new ol.source.Vector({
features: [new ol.Feature({
geometry: geometry
})]
})
});
我一直在努力寻找解决方案,在互联网上找不到任何关于错误本身的参考(除了OpenLayers的源代码)。
我已经找到了解决方案,但我将其发布在这里以供参考,以防将来有人遇到同样的问题。
那么,该怎么办呢?
经过大量挖掘,我意识到多边形的定义需要一组额外的括号:
var geometry = new ol.geom.Polygon([ [
[10.689697265625, -25.0927734375],
[34.595947265625, -20.1708984375],
[38.814697265625, -35.6396484375],
[13.502197265625, -39.1552734375],
[10.689697265625, -25.0927734375]
] ]);
geometry.transform('EPSG:4326', 'EPSG:3857');
var vectorLayer = new ol.layer.Vector({
map: this.map,
source: new ol.source.Vector({
features: [new ol.Feature({
geometry: geometry
})]
})
});
这很管用!
这就是最终启发我的jsfiddle:http://jsfiddle.net/q8s2z/111/
正如文档所述,坐标参数是ol的数组。坐标(也是一个数组)。
同样,多多边形也可以定义为:
var geometry = new ol.geom.MultiPolygon([ [
[10.689697265625, -25.0927734375],
[34.595947265625, -20.1708984375],
[38.814697265625, -35.6396484375],
[13.502197265625, -39.1552734375],
[10.689697265625, -25.0927734375]
], [
[10.689697265625, -25.0927734375],
[34.595947265625, -20.1708984375],
[38.814697265625, -35.6396484375],
[13.502197265625, -39.1552734375],
[10.689697265625, -25.0927734375]
] ]);
相关文章:
- 断言错误:断言失败:坐标数组的长度应与步幅匹配
- 未捕获的错误:断言失败:余烬视图需要 1.7 和 2.1 之间的 jQuery
- emberjs追加有效,但引发断言失败错误
- i18n转换无法使用ember-断言失败:缺少键的转换
- ember dev fixes错误:“;断言失败:findAll的响应必须是数组,而不是未定义的“”;
- OL3 缩放到范围控件引发“未捕获的断言错误:断言失败:无效的范围或几何”
- Ember 断言失败:来自 findQuery 的响应必须是数组,而不是未定义
- 未捕获的错误:断言失败:必须使用 Ember.set() 进行设置
- (Ember.js) 断言失败:您指定了 <(ClassName.Button 的子类)的模板名称图标:ember353
- 如何在断言失败时继续测试用例 在 CasperJS 中
- 余烬数据断言失败:无法对未定义的对象使用“查询”调用 get
- 垃圾回收时断言失败
- 断言失败:#each 循环的值必须是数组余烬 js
- 未捕获错误:断言失败:尝试注册具有已在使用的 ID 的视图:名称
- 得到"未捕获错误:断言失败:Ember视图需要1.7和2.1之间的jQuery“;通过ember-cli创建的
- 呈现多个EmberJS视图时断言失败
- YUI.只有一个断言失败后,测试才会停止
- 处理路由时出现Ember错误:列出断言失败
- 为什么Ember会抛出“;未捕获错误:断言失败:调用已销毁对象上的集“”;载于ember.js:3722
- 断言失败-[UIAlertController addTextFieldWithConfigurationHandler