Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript openlayers3的特点是取消图层样式_Javascript_Qt_Openlayers 3_Qt5.3 - Fatal编程技术网

Javascript openlayers3的特点是取消图层样式

Javascript openlayers3的特点是取消图层样式,javascript,qt,openlayers-3,qt5.3,Javascript,Qt,Openlayers 3,Qt5.3,我正在研制一种嵌入式“GPS”。我们的嵌入式浏览器是qt5.3WebPluging,它已经很旧了,但我们还不能升级我们的qt 问题是,当我们更新当前位置的标记时,它有时会消失10秒或更长时间。以下是指向工作示例或问题的链接:。在firefox中没有问题,但是图像有时会在我们的浏览器中消失 我们计算的样式: var STYLE_ON = new ol.style.Style({ image: new ol.style.Icon({ // not the actual arr

我正在研制一种嵌入式“GPS”。我们的嵌入式浏览器是qt5.3WebPluging,它已经很旧了,但我们还不能升级我们的qt

问题是,当我们更新当前位置的标记时,它有时会消失10秒或更长时间。以下是指向工作示例或问题的链接:。在firefox中没有问题,但是图像有时会在我们的浏览器中消失

我们计算的样式:

var STYLE_ON = new ol.style.Style({
    image: new ol.style.Icon({
        // not the actual arrow we use: ours is 30*30, 1.9kio
        src: "http://images.easyfreeclipart.com/1067/double-up-arrow-1067454.jpg"
    })
});
var STYLE_OFF = new ol.style.Style({
    image: new ol.style.Icon({
        // actually a grayed image of the STYLE_ON arrow
        src: "http://images.easyfreeclipart.com/1067/double-up-arrow-1067454.jpg"
    })
});
我们如何选择样式:

map.addLayer(new ol.layer.Vector({
    type: 'markers',
    source: markers,
    style: function (feature) {
        var style = null;
        if (feature.get('vtype') === 'cur') {
            style = feature.get('fade') ? STYLE_OFF : STYLE_ON;
            style.getImage().setRotation(feature.get('rotation'));
        }
        else {
            style = new ol.style.Style({
                image: new ol.style.Circle({
                    radius: 6,
                    opacity: 0.5,
                    fill: new ol.style.Fill({
                        color: COLORS[feature.get('vtype')]
                    })
                })
            });
        }
        return [style];
    }
}));
有什么解决办法吗?
每个功能使用一种样式看起来效率不高(因为我们的原始代码是这样的)。

试试base64编码的图像:

  var iconStyle = new ol.style.Style({
      image: new ol.style.Icon({
      src: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANRJREFUeNrsksERgyAQRfdTQS7pI3YQS0kJHlJFiggdpARboITcc7GELDObDCrIqnBKdoaB0c97sApaUS+63Xk68WiPdB00e6AEH3h68DjLI6eVQAnv5eRhqSTYCFdLsAOukmAnPCtBAfiiBIXgSQkKwqMSFIbPJKgAH0lMJTgJszdiSpXvY7fwvpNM8haG+3ThhU3A28wBnGRiEuvZ/gYUkQzykVyuD5KZSqwwyQTBj0QNT0i+8JEgkDRr4BNJE8JnAgk+t/42sb2GKtdf8AOCtwADADYvWhxy2YPJAAAAAElFTkSuQmCC'
    })
  });

这在一定程度上解决了这个问题:箭头有时会消失。还有更快的方法吗?也许我的回调应该进一步优化?