Контур для ПУУД
This commit is contained in:
+1
@@ -28,6 +28,7 @@ data class AngularMotionCalculationResultDTO(
|
||||
val satelliteId: Long,
|
||||
val approximateTime: LocalDateTime,
|
||||
val startTime: LocalDateTime,
|
||||
val contourWkt: String?,
|
||||
val points: List<AngularMotionPointDTO>,
|
||||
)
|
||||
|
||||
|
||||
+6
@@ -10,6 +10,7 @@ import org.springframework.stereotype.Service
|
||||
import space.nstart.pcp.angularmotion.AngularMotionCalculatorFactory
|
||||
import space.nstart.pcp.angularmotion.AngularMotionConfig
|
||||
import space.nstart.pcp.angularmotion.AngularMotionMode
|
||||
import space.nstart.pcp.angularmotion.SurveyContourCalculator
|
||||
import space.nstart.pcp.angularmotion.SurveyId
|
||||
import space.nstart.pcp.pcp_request_service.configuration.CustomValidationException
|
||||
import space.nstart.pcp.pcp_request_service.service.SatelliteCatalogClient
|
||||
@@ -91,12 +92,14 @@ class AngularMotionService(
|
||||
} catch (error: RuntimeException) {
|
||||
throw CustomValidationException(error.message ?: "Ошибка расчета ПУУД")
|
||||
}
|
||||
val contourWkt = SurveyContourCalculator(EarthType.PZ90d02).calculate(result, request.captureAngleDeg)
|
||||
|
||||
return AngularMotionCalculationResultDTO(
|
||||
mode = result.mode,
|
||||
satelliteId = request.satelliteId,
|
||||
approximateTime = request.approximateTime,
|
||||
startTime = toDateTime(result.startTime),
|
||||
contourWkt = contourWkt,
|
||||
points = result.points.map { point ->
|
||||
AngularMotionPointDTO(
|
||||
time = toDateTime(point.t),
|
||||
@@ -122,6 +125,9 @@ class AngularMotionService(
|
||||
if (request.durationSec <= 0.0) {
|
||||
throw CustomValidationException("durationSec must be positive")
|
||||
}
|
||||
if (request.captureAngleDeg <= 0.0 || !request.captureAngleDeg.isFinite()) {
|
||||
throw CustomValidationException("captureAngleDeg must be positive")
|
||||
}
|
||||
if (request.latitudeDeg !in -90.0..90.0) {
|
||||
throw CustomValidationException("latitudeDeg must be in [-90; 90]")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user