Javascript OpenLayers,当为图层指定样式时,firefox不会渲染

Javascript OpenLayers,当为图层指定样式时,firefox不会渲染,javascript,google-maps,geolocation,openlayers,Javascript,Google Maps,Geolocation,Openlayers,当我为向量层指定style属性时,firefox不会在该层上渲染向量 要测试这一点,只需执行包含的javascript和html页面 您将在右上角看到一个EditingToolbar,尝试使用firefox绘制一个线条字符串 您将发现,线串根本不会出现在图层上 尝试从vectors层中删除styleMap属性,一切都将正常工作 如果你知道这个问题的原因,请告诉我 提前感谢您的时间和帮助 附言 此外,您还必须使用自己的OpenLayers库,并从html页面链接到它 就我个人而言,我使用的是Git

当我为向量层指定style属性时,firefox不会在该层上渲染向量

要测试这一点,只需执行包含的javascript和html页面

您将在右上角看到一个EditingToolbar,尝试使用firefox绘制一个线条字符串

您将发现,线串根本不会出现在图层上

尝试从vectors层中删除styleMap属性,一切都将正常工作

如果你知道这个问题的原因,请告诉我

提前感谢您的时间和帮助

附言

此外,您还必须使用自己的OpenLayers库,并从html页面链接到它

就我个人而言,我使用的是GitHub的最新版本,因为其他版本还有另一个恼人的bug:

谷歌地图上的对话不断出现

function initialize(){
    new Map();
}

function Map(){
    this.map;
    this.editing_toolbar;
    this.vectors;
    this.epsg900913 = new OpenLayers.Projection('EPSG:900913');
    this.epsg4326 = new OpenLayers.Projection('EPSG:4326');
    this.line_control;
    this.renderer;
    this.line_control,this.renderer=OpenLayers.Util.getParameters(window.location.href).renderer;
    this.renderer= (this.renderer) ? [this.renderer] : OpenLayers.Layer.Vector.prototype.renderers;
    // Create the map object
    this.map = new OpenLayers.Map('map');
    //Create a Google layer
    var gmap = new OpenLayers.Layer.Google(
         "Google Streets", // the default
        {
            numZoomLevels: 30,
            projection: new OpenLayers.Projection("EPSG:900913")
        }
    );

    var my_style=new OpenLayers.StyleMap({
        "default":new OpenLayers.Style({
            strokeWidth:5,
            fillColor:"1484e6",
            strokeColor:"1484e6"
        }),
        "select":new OpenLayers.Style({
            fillColor:"e39119",
            strokeColor:"e39119"
        })
    });
    this.vectors= new OpenLayers.Layer.Vector(
        "Vector Layer",
        {styleMap:my_style,
            renderers:this.renderer
        }
    );



    this.map.addLayers([gmap,this.vectors]);
    this.editing_toolbar=new OpenLayers.Control.EditingToolbar(this.vectors);
    this.map.addControl(this.editing_toolbar);



    this.map.addControl(new OpenLayers.Control.LayerSwitcher());
    this.map.addControl(new OpenLayers.Control.MousePosition());


    this.map.setCenter(new OpenLayers.LonLat(-123.12, 49.28).transform(this.epsg4326, this.epsg900913), 13);         

}



<html>
    <head>
        <title>OpenLayers: Google Layer Example</title>
        <script type="text/javascript" src="http://maps.google.com/maps/api/js?key=AIzaSyAt66skA87gnWvy7UQl065zFaFHNXJiBc4&sensor=false"></script>
        <script type="text/javascript" src="/static/open_layers/lib/OpenLayers.js"></script>
        <script type="text/javascript" src="/static/firefox_bug.js"></script>
    </head>

    <body onload="initialize()">
        <div id="map"   class="smallmap"></div>
    </body>

</html>
函数初始化(){
新地图();
}
函数映射(){
这张地图;
这是一个编辑工具条;
这是向量;
this.epsg900913=新OpenLayers.Projection('EPSG:900913');
this.epsg4326=新OpenLayers.Projection('EPSG:4326');
这是一条线控制;
这是一个渲染器;
this.line_控件,this.renderer=OpenLayers.Util.getParameters(window.location.href).renderer;
this.renderer=(this.renderer)?[this.renderer]:OpenLayers.Layer.Vector.prototype.renderers;
//创建贴图对象
this.map=newopenlayers.map('map');
//创建一个谷歌图层
var gmap=new OpenLayers.Layer.Google(
“Google Streets”,//默认值
{
numZoomLevels:30,
投影:新OpenLayers.投影(“EPSG:900913”)
}
);
var my_style=new OpenLayers.StyleMap({
“默认”:新建OpenLayers.Style({
冲程宽度:5,
填充颜色:“1484e6”,
strokeColor:“1484e6”
}),
“选择”:新建OpenLayers.Style({
填充颜色:“e39119”,
strokeColor:“e39119”
})
});
this.vectors=new OpenLayers.Layer.Vector(
“矢量层”,
{styleMap:my_风格,
渲染器:this.renderer
}
);
this.map.addLayers([gmap,this.vectors]);
this.editing_toolbar=new OpenLayers.Control.EditingToolbar(this.vectors);
this.map.addControl(this.editing_工具栏);
this.map.addControl(新的OpenLayers.Control.LayerSwitcher());
this.map.addControl(新的OpenLayers.Control.MousePosition());
this.map.setCenter(newopenlayers.LonLat(-123.12,49.28).transform(this.epsg4326,this.epsg900913),13);
}
OpenLayers:Google层示例

这是有史以来最简单的事情。答案是1484e6不是一种颜色,但是#1484e6是一种颜色