cuitw 2 months ago
parent
commit
46ffc95bd8
  1. 30
      ruoyi-ui/src/views/cesiumMap/index.vue

30
ruoyi-ui/src/views/cesiumMap/index.vue

@ -1695,12 +1695,6 @@ export default {
msaaSamples: 8
})
this.viewer.cesiumWidget.creditContainer.style.display = "none"
// FXAA 线齿
try {
if (this.viewer.scene.postProcessStages && this.viewer.scene.postProcessStages.fxaa) {
this.viewer.scene.postProcessStages.fxaa.enabled = true
}
} catch (e) { /* 部分 Cesium 版本可能无此 API */ }
// 80% 线齿
this.applyResolutionScale()
this._resolutionScaleCleanup = this.setupResolutionScaleListener()
@ -3216,8 +3210,8 @@ export default {
// 5.
this.drawingPoints = [];
},
// 线齿
generateCirclePositions(center, radius, numPoints = 256) {
// 线
generateCirclePositions(center, radius, numPoints = 192) {
const positions = [];
const ellipsoid = this.viewer.scene.globe.ellipsoid;
@ -3293,8 +3287,8 @@ export default {
}
//
angleDiff = Math.max(0.01, angleDiff);
// 齿
const numPoints = Math.max(64, Math.ceil(angleDiff * 180 / Math.PI / 2));
//
const numPoints = Math.max(16, Math.ceil(angleDiff * 180 / Math.PI / 3));
const angleStep = angleDiff / (numPoints - 1);
//
for (let i = 0; i < numPoints; i++) {
@ -3808,8 +3802,8 @@ export default {
if (!this.viewer || !this.viewer.cesiumWidget) return
const vv = window.visualViewport
const scale = (vv && typeof vv.scale === 'number') ? vv.scale : 1
// 使 2.2 80% 2.5线齿
let resolutionScale = 2.2
// 使 2.0 80% 2.5齿
let resolutionScale = 2.0
if (scale > 0 && scale < 1) {
resolutionScale = Math.min(2.5, 1 / scale)
if (resolutionScale < 2.0) resolutionScale = 2.0
@ -3840,8 +3834,8 @@ export default {
window.removeEventListener('resize', onResize)
}
},
/** 按等经度/等纬度采样矩形边框,使在 2D 地图缩小时仍显示为直线(避免测地线弯弧);分段数提高以减轻锯齿 */
getRectangleBorderPositions(rect, segmentsPerEdge = 64) {
/** 按等经度/等纬度采样矩形边框,使在 2D 地图缩小时仍显示为直线(避免测地线弯弧) */
getRectangleBorderPositions(rect, segmentsPerEdge = 48) {
const west = rect.west
const south = rect.south
const east = rect.east
@ -3866,8 +3860,8 @@ export default {
}
return positions
},
/** 在 2D 墨卡托下将一段线采样为“直线”(避免测地线弯弧);返回 Cartesian3 数组含起点到终点;分段数提高以减轻锯齿 */
sampleSegmentStraightIn2D(cartesianA, cartesianB, numSegments = 64) {
/** 在 2D 墨卡托下将一段线采样为“直线”(避免测地线弯弧);返回 Cartesian3 数组含起点到终点 */
sampleSegmentStraightIn2D(cartesianA, cartesianB, numSegments = 32) {
const cgA = Cesium.Cartographic.fromCartesian(cartesianA)
const cgB = Cesium.Cartographic.fromCartesian(cartesianB)
const lonA = cgA.longitude
@ -3887,8 +3881,8 @@ export default {
}
return positions
},
/** 将折线/多边形顶点按 2D 墨卡托“直线”采样,使缩放小时仍显示为直;closed 为 true 表示多边形闭合;分段数提高以减轻锯齿 */
getPolylinePositionsStraightIn2D(positions, closed = false, segmentsPerEdge = 64) {
/** 将折线/多边形顶点按 2D 墨卡托“直线”采样,使缩放小时仍显示为直;closed 为 true 表示多边形闭合 */
getPolylinePositionsStraightIn2D(positions, closed = false, segmentsPerEdge = 32) {
if (!positions || positions.length < 2) return positions
const n = positions.length
const result = []

Loading…
Cancel
Save