0

当我为矢量图层指定样式属性时,firefox不会在该层上渲染矢量。

要对此进行测试,只需执行包含的 javascript 和 html 页面。

您会在右上角看到一个 EditingToolbar,尝试使用 firefox 绘制 LineString。

您会发现 LineStrings 根本没有出现在图层上。

尝试从矢量图层中删除 styleMap 属性,一切都会正常工作。

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

提前感谢您的时间和帮助。

附言

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

我个人使用的是 GitHub 的最新版本,因为其他版本还有另一个烦人的错误:

谷歌地图不断弹出对话。

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>
4

0 回答 0