44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
|
|
//火星科技定义的geoserver发布的pdf的Sld样式(未调试完成)
|
||
|
|
|
||
|
|
(function (window) {
|
||
|
|
class MarsPbfStyle {
|
||
|
|
constructor(options) {
|
||
|
|
this.options = options;
|
||
|
|
this.ol = window.ol;
|
||
|
|
}
|
||
|
|
|
||
|
|
//对外主要方法
|
||
|
|
getStyle() {
|
||
|
|
let that = this;
|
||
|
|
|
||
|
|
return function (feature, resolution) {
|
||
|
|
that.type = feature.getGeometry().getType();
|
||
|
|
that.properties = feature.getProperties();
|
||
|
|
that.resolution = resolution;
|
||
|
|
that.scale = 1 / (0.0254 / (96 * resolution));
|
||
|
|
|
||
|
|
//通过外部接口获取style配置信息
|
||
|
|
var styleCfg = that.options.getStyle(that.properties, that);
|
||
|
|
|
||
|
|
var style = {};
|
||
|
|
if (styleCfg.stroke) {
|
||
|
|
//线
|
||
|
|
style.stroke = new ol.style.Stroke({ color: styleCfg.color, width: styleCfg.width });
|
||
|
|
}
|
||
|
|
if (styleCfg.fill) {
|
||
|
|
//面
|
||
|
|
style.fill = new ol.style.Fill({ color: styleCfg.fillColor });
|
||
|
|
}
|
||
|
|
|
||
|
|
// 组装层级样式
|
||
|
|
style.zIndex = that.options.zIndex || 1;
|
||
|
|
|
||
|
|
return [new ol.style.Style(style)];
|
||
|
|
};
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
//对外接口
|
||
|
|
window.mars3d.MarsPbfStyle = MarsPbfStyle;
|
||
|
|
})(window);
|