| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- import LTBaseObject from './KBaseObject'
- import XYZ from 'ol/source/XYZ'
- import Tile from 'ol/layer/Tile'
- import Common from './Common'
- import Style from "ol/style/Style";
- import Fill from "ol/style/Fill";
- import Stroke from "ol/style/Stroke";
- import Text from "ol/style/Text";
- import Icon from "ol/style/Icon";
- import Circle from "ol/style/Circle";
- /**
- * @description 样式类
- */
- class VectorStyle{
- constructor(){
- this.cachePointSimpleStyle = {}
- }
- getLineStyle(fillColor, strokeColor, strokeWidth){
- let style = new Style({
- stroke: new Stroke({
- color: strokeColor,
- width: strokeWidth || 1,
- }),
- });
- return style;
- }
- getPolygonStyle(fillColor, strokeColor, strokeWidth){
- let style = new Style({
- fill: new Fill({
- color: fillColor
- }),
- stroke: new Stroke({
- color: strokeColor,
- width: strokeWidth || 1,
- }),
- });
- return style;
- }
- getPointStyle(src, scale, anchor, text, font, textColor){
- let textObj = null;
- text && (textObj = new Text({
- text:text,
- stroke: new Stroke({
- color: textColor,
- width: 1,
- }),
- fill: new Fill({
- color: textColor,
- }),
- font:font
- }))
- let style = new Style({
- image: new Icon({
- text:textObj,
- src:src,
- scale:scale,
- anchor:anchor,
- })
- });
- return style
- }
- /**
- *
- * @param radius 半径
- * @param fillColor 填充颜色
- * @param strokeColor 边框颜色
- * @param strokeWidth 边框宽度
- * @returns {Style}
- */
- getPointSimpleStyle(radius, fillColor, strokeColor, strokeWidth){
- let key = radius + fillColor + strokeColor + strokeWidth
- if(this.cachePointSimpleStyle[key]){
- return this.cachePointSimpleStyle[key]
- }
- let style = new Style({
- image: new Circle({
- radius: radius, // 半径
- stroke: new Stroke({ // 边界样式
- color: strokeColor, // 边界颜色
- width: strokeWidth // 边界宽度
- }),
- fill: new Fill({ // 填充样式
- color: fillColor // 填充颜色
- })
- })
- });
- this.cachePointSimpleStyle[key] = style
- return style
- }
- /**
- *
- * @param text
- * @param fillColor 填充颜色
- * @param strokeColor 边框颜色
- * @param strokeWidth 边框宽度
- * @returns {Style}
- */
- getPointTextStyle(text, fillColor, strokeColor, strokeWidth, fontSize){
- let style = new Style({
- text: new Text({
- text:text,
- stroke: new Stroke({
- color: strokeColor,
- width: strokeWidth,
- }),
- fill: new Fill({
- color: fillColor,
- }),
- font: fontSize+"px sans-serif"
- }),
- });
- return style
- }
- }
- export default VectorStyle
|