固定图标的大小。 OpenLayers3

时间:2014-07-16 06:59:18

标签: javascript openlayers-3

我正在使用OpenLayers3库。我想有固定的图标大小。我正在使用此代码设置大小38x38px:

 new ol.style.Style({
       image: new ol.style.Icon({
           src: icon,
           size: [38, 38]
       })
});

我在firebug中有错误:

  

IndexSizeError:索引或大小为负数或大于允许的数量

有什么问题?

4 个答案:

答案 0 :(得分:2)

我已经设法通过使用大于实际图标大小的图片大小在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,看起来大小与锚点位置有关,而不是像你建议的那样。

正如Karl-Johan所说,这似乎是一个错误。鉴于OL3现在处于伽玛状态,可能是报告它的好时机。

我意识到这并不能解决你的问题,但至少会在原因上复制它。

答案 1 :(得分:1)

似乎有一个bug in OpenLayers已于5月初修复,可能会出现此错误。它似乎特定于Firefox以及(因为你提到Firebug我假设你使用的是Firefox)所以在你的情况下听起来似乎是合理的。

所以,只需尝试更新latest release of OpenLayers3(截至编写v3.0.0-gamma.2),看看是否有帮助。

答案 2 :(得分:0)

答案 3 :(得分:0)

用于跨浏览器使用 src : iconUrl,scale : 1.3, 代替。如果使用尺寸,也不应该如上所述那样高于[32,48]。

相关问题