我正在使用OpenLayers3图书馆。我想要固定的图标大小。我使用此代码设置大小 38x38px:
new ol.style.Style({
image: new ol.style.Icon({
src: icon,
size: [38, 38]
})
});
我在 Firebug 中遇到错误:
IndexSizeError: Index or size is negative or greater than the allowed amount
出了什么问题?
最佳答案
我已成功通过使用大于实际图标大小的图像大小在 IE 和 Firefox 中复制您的问题,请参阅 jsFiddle .
当图像设置为其实际大小 [32, 48] 或更小的值时,此操作运行良好,但一旦超过该大小,您就会在 Firefox 和 IE 中收到错误。
var iconStyle = new ol.style.Style({
image: new ol.style.Icon(/** @type {olx.style.IconOptions} */ ({
anchor: [0.5, 46],
size: [32, 48],
anchorXUnits: 'pixels',
anchorYUnits: 'pixels',
opacity: 0.75,
src: 'http://ol3js.org/en/master/examples/data/icon.png'
}))
});
查看iconstyle source正如您所建议的,尺寸似乎与 anchor 位置的关系比尺寸更大。
正如 Karl-Johan 所说,这似乎是一个错误。鉴于 OL3 现在处于 Gamma 状态,现在可能是报告它的好时机。
我意识到这并不能解决您的问题,但至少可以有原因地复制它。
关于javascript - 图标的固定大小。开放层3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24774180/