css6图层 解锁,javascript - 如何在Openlayers上更改WMS图层的样式(来自Javascript) - 堆栈内存溢出...

我有一个geojson文件,我存储在我的GeoServer上。 该文件包含大约150个多边形。

我正在通过WMS服务调用此层,并成功在OpenLayers(v4.6.4)上显示具有默认样式的图层。

现在,我想在用户点击地图时更改此图层“区域”的样式(样式描述为zone_sld)。

我不想调用存储在GeoServer中的样式(不适合我项目的最终版本),我想在OpenLayers中动态更改样式。

//definition of my style

var district_sld = '<?xml version="1.0" encoding="UTF-8"?>';

district_sld += '';

district_sld += 'District_07072018';

district_sld += '';

district_sld += ' District_07072018';

district_sld += ' ';

district_sld += ' name';

district_sld += ' ';

district_sld += ' Single symbol';

district_sld += ' ';

district_sld += ' ';

district_sld += ' #ff0000';

district_sld += ' ';

district_sld += ' ';

district_sld += ' #000001';

district_sld += ' bevel';

district_sld += ' 4.000000';

district_sld += ' ';

district_sld += ' ';

district_sld += ' ';

district_sld += ' ';

district_sld += '';

district_sld += '';

district_sld += '';

var format = 'image/png';

/*DISTRICT LAYER*/

var district = new ol.layer.Tile({

source: new ol.source.TileWMS({

url: 'http://'+ $location.host() + ':8080/geoserver/project/wms',

params: {'FORMAT': format,

'VERSION': '1.1.1',

tiled: true,

LAYERS: 'project:District_07072018',

//'SLD_BODY': district_sld,

STYLES: '',

},

crossOrigin: 'Anonymous'

})

});

var projection = new ol.proj.Projection({

code: 'EPSG:4326',

units: 'degrees',

axisOrientation: 'neu'

});

var map = new ol.Map({

controls: ol.control.defaults({

attribution: false

}).extend([mousePositionControl]),

overlays: [overlay],

target: 'map',

layers: [

district

],

view: new ol.View({

projection: projection

})

});

map.on('click', function(evt) {

//alert('clicK to change the style of the district layer');

//district.getSource().clear();

//district.getSource().updateParams({STYLES: undefined, SLD_BODY: district_sld});

district.getSource().updateParams({STYLES: district_sld});

});

任何建议的帮助将非常感激。 谢谢。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值