Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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 无法设置线条字符串的样式_Javascript_Maps_Gis_Openlayers - Fatal编程技术网

Javascript 无法设置线条字符串的样式

Javascript 无法设置线条字符串的样式,javascript,maps,gis,openlayers,Javascript,Maps,Gis,Openlayers,我正在尝试设计线条,但似乎不起作用。这是我的代码: function connectStationFeatures(feat1, feat2){ var lineLayer = getLinesLayer(); var point1 = feat1.geometry; var point2 = feat2.geometry; var style = new OpenLayers.StyleMap({ 'fillColor':"#FF8C00",

我正在尝试设计线条,但似乎不起作用。这是我的代码:

function connectStationFeatures(feat1, feat2){
    var lineLayer = getLinesLayer();
    var point1 = feat1.geometry;
    var point2 = feat2.geometry;
    var style = new OpenLayers.StyleMap({
        'fillColor':"#FF8C00",
        'strokeWidth':10,
        'strokeDashstyle':"dashdot"
    });
    var line = new OpenLayers.Geometry.LineString([point1, point2]);

    lineLayer.addFeatures([new OpenLayers.Feature.Vector(line, {styleMap:style})]);
}
或者,我尝试:

function connectStationFeatures(feat1, feat2){
    var lineLayer = getLinesLayer();
    var point1 = feat1.geometry;
    var point2 = feat2.geometry;
    var style = new OpenLayers.StyleMap({
        'fillColor':"#FF8C00",
        'strokeWidth':10,
        'strokeDashstyle':"dashdot"
    });
    var line = new OpenLayers.Geometry.LineString([point1, point2]);
    var lineFeat = new OpenLayers.Feature.Vector(line);
    lineFeat.styleMap = style;
    lineLayer.addFeatures([lineFeat]);
 }

非常感谢您的帮助!THX

您必须将样式映射添加到图层,而不是要素

vectorLayer = new OpenLayers.Layer.Vector('Foo', {styleMap: style});

有几种不同的方式来定义样式-使用散列、样式或样式映射对象;您可以将它们附加到要素或图层。这是一个很好的解释: