|
|
|
|
@ -13,7 +13,8 @@ import { |
|
|
|
|
getLength |
|
|
|
|
} from 'ol/sphere.js'; |
|
|
|
|
import { |
|
|
|
|
LineString |
|
|
|
|
LineString, |
|
|
|
|
Point |
|
|
|
|
} from "ol/geom"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -50,7 +51,8 @@ const formatLength = function(line) { |
|
|
|
|
|
|
|
|
|
const generateStyle = (feature, { |
|
|
|
|
fillOpt, |
|
|
|
|
strokeOpt |
|
|
|
|
strokeOpt, |
|
|
|
|
withNode |
|
|
|
|
}) => { |
|
|
|
|
let area = 0; |
|
|
|
|
const geom = feature.getGeometry(); |
|
|
|
|
@ -59,7 +61,7 @@ const generateStyle = (feature, { |
|
|
|
|
area = formatArea(geom); |
|
|
|
|
const lineString = new LineString(geom.getCoordinates()[0]); |
|
|
|
|
const length = formatLength(lineString); |
|
|
|
|
lineStyle = new Style({ |
|
|
|
|
lineStyle = [new Style({ |
|
|
|
|
geometry: lineString, |
|
|
|
|
text: new TextStyle({ |
|
|
|
|
text: length, |
|
|
|
|
@ -79,7 +81,17 @@ const generateStyle = (feature, { |
|
|
|
|
"overflow": true, |
|
|
|
|
"rotation": 0 |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
}), ...(withNode ? geom.getCoordinates()[0]?.map(coordinates => { |
|
|
|
|
return new Style({ |
|
|
|
|
geometry: new Point(coordinates), |
|
|
|
|
image: new CircleStyle({ |
|
|
|
|
fill: new Fill({ |
|
|
|
|
color: '#0ff' |
|
|
|
|
}), |
|
|
|
|
radius: 2 |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
}) : [])] |
|
|
|
|
} |
|
|
|
|
return [new Style({ |
|
|
|
|
fill: new Fill({ |
|
|
|
|
@ -103,7 +115,7 @@ const generateStyle = (feature, { |
|
|
|
|
"overflow": true, |
|
|
|
|
"rotation": 0 |
|
|
|
|
}) |
|
|
|
|
}), lineStyle].filter(item => item); |
|
|
|
|
}), ...(lineStyle || [])].filter(item => item); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const startMeasure = (map, callback) => { |
|
|
|
|
|