Javascript OpenLayers矢量样式更改问题
当我点击地图上的按钮时,我想改变矢量样式(fillColor)。我试过了,但运气不好Javascript OpenLayers矢量样式更改问题,javascript,jquery,css,openlayers,geoserver,Javascript,Jquery,Css,Openlayers,Geoserver,当我点击地图上的按钮时,我想改变矢量样式(fillColor)。我试过了,但运气不好 var map; var layer, wms; function init() { map = new OpenLayers.Map('map'); wms = new OpenLayers.Layer.WMS( "OpenLayers WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0", { layers: 'bas
var map;
var layer, wms;
function init() {
map = new OpenLayers.Map('map');
wms = new OpenLayers.Layer.WMS(
"OpenLayers WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0", {
layers: 'basic'
});
var myStyle = {
fill: true,
fillColor: "#ff0000"
};
layer = new OpenLayers.Layer.Vector("WFS", {
style: myStyle,
strategies: [new OpenLayers.Strategy.BBOX()],
protocol: new OpenLayers.Protocol.WFS({
url: "http://demo.opengeo.org/geoserver/wfs",
featureType: "tasmania_roads",
featureNS: "http://www.openplans.org/topp"
})
});
map.addLayers([wms, layer]);
map.setCenter(new OpenLayers.LonLat(146.7, -41.8), 6);
var panel_type2 = new OpenLayers.Control.Panel({
displayClass: 'Panel2'
});
map.addControl(panel_type2);
var redraw = new OpenLayers.Control.Button({
displayClass: 'first',
trigger: function () {
layer.destroyFeatures();
map.removeLayer(layer);
var myStyle = {
fill: true,
fillColor: "#DFDFFF"
};
layer = new OpenLayers.Layer.Vector("WFS", {
style: myStyle,
strategies: [new OpenLayers.Strategy.BBOX()],
protocol: new OpenLayers.Protocol.WFS({
url: "http://demo.opengeo.org/geoserver/wfs",
featureType: "tasmania_roads",
featureNS: "http://www.openplans.org/topp"
})
});
map.addLayers([layer]);
}
});
panel_type2.addControls([redraw]);
}
当我点击按钮时,我试图用新的样式重新绘制矢量层。但它不起作用。有人能告诉我为什么它不改变颜色,我怎么能改变
如蒙帮助,将不胜感激。:) 您的问题是wfs请求返回的只是直线,没有多边形,因此您的fillStyle将被忽略,因为没有可应用的对象。我已经更新了你的小提琴,并在你的样式图中添加了strokeColor属性,现在它可以正常工作了:
var myStyle1 = {
fill: true,
fillColor: "#DFDFFF",
strokeColor: "#FF0000"
};
啊。太棒了,兄弟。没有注意到strokeColor。谢谢+不客气,兄弟。有时候第二双眼睛真的很有帮助。你能加入这个聊天室吗。我对地图API没有什么疑问。如果你能帮我整理一下,那对我真的很有帮助。