feat: 完善日月食与月掩几何链路并扩展历法接口
- 新增日月食中心带、偏食带、阴影足迹、等时线、食分线及升落边界计算,支持极区与混合食拓扑 - 新增日食单时刻阴影求解器、站心状态查询、批量采样和 ΔT 覆盖接口 - 重构恒星与行星月掩路径,补充有限盘面接触、站心修正、掩带宽度、极区投影及升落边界 - 扩展 SVG 与 GeoJSON 输出,支持详细面板、全球/极区/地球投影、边界闭合、时间标记和拓扑签名 - 扩展日月食候选搜索、局地搜索、沙罗序列预计算与范围外推,补充系列锚点和成员一致性校验 - 补齐古历纪年、儒略历独有闰日、多公历候选、历法改革跨日及精确日期运算接口 - 优化 ΔT、章动、恒星时、月球地平线、事件根搜索和本地星历缓存,降低重复计算开销并提升边界稳定
This commit is contained in:
@@ -3,6 +3,7 @@ package svg
|
||||
import "b612.me/astro/internal/svgmap"
|
||||
|
||||
// EclipseMapProjection 控制全球日月食地图投影;零值根据事件几何选择投影。
|
||||
// 与 moon/svg.MapProjection 是同一概念的两套名字,取值字符串逐对相同。
|
||||
// EclipseMapProjection controls a global eclipse map projection. The zero value selects the projection from the event geometry.
|
||||
type EclipseMapProjection string
|
||||
|
||||
@@ -16,6 +17,9 @@ const (
|
||||
// EclipseMapProjectionNorthPolar 使用北极方位等距投影。
|
||||
// EclipseMapProjectionNorthPolar uses the north-polar azimuthal equidistant projection.
|
||||
EclipseMapProjectionNorthPolar EclipseMapProjection = "north-polar"
|
||||
// EclipseMapProjectionOrthographic 使用正射球面投影,视点取食甚点,只画朝向视点的半个地球。
|
||||
// EclipseMapProjectionOrthographic uses the orthographic globe projection centred on the greatest point, drawing only the facing hemisphere.
|
||||
EclipseMapProjectionOrthographic EclipseMapProjection = "orthographic"
|
||||
// EclipseMapProjectionSouthPolar 使用南极方位等距投影。
|
||||
// EclipseMapProjectionSouthPolar uses the south-polar azimuthal equidistant projection.
|
||||
EclipseMapProjectionSouthPolar EclipseMapProjection = "south-polar"
|
||||
@@ -28,7 +32,8 @@ func internalEclipseMapProjection(value EclipseMapProjection) svgmap.Projection
|
||||
func validEclipseMapProjection(value EclipseMapProjection) bool {
|
||||
switch value {
|
||||
case EclipseMapProjectionAuto, EclipseMapProjectionEquirectangular,
|
||||
EclipseMapProjectionNorthPolar, EclipseMapProjectionSouthPolar:
|
||||
EclipseMapProjectionNorthPolar, EclipseMapProjectionSouthPolar,
|
||||
EclipseMapProjectionOrthographic:
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
@@ -42,6 +47,8 @@ func eclipseMapProjectionLabel(projection svgmap.Projection, language string) st
|
||||
return "North-polar azimuthal equidistant projection"
|
||||
case svgmap.ProjectionSouthPolar:
|
||||
return "South-polar azimuthal equidistant projection"
|
||||
case svgmap.ProjectionOrthographic:
|
||||
return "Orthographic globe projection, centred on the greatest eclipse; one hemisphere only"
|
||||
default:
|
||||
return "Equirectangular projection"
|
||||
}
|
||||
@@ -51,6 +58,8 @@ func eclipseMapProjectionLabel(projection svgmap.Projection, language string) st
|
||||
return "北极方位等距投影"
|
||||
case svgmap.ProjectionSouthPolar:
|
||||
return "南极方位等距投影"
|
||||
case svgmap.ProjectionOrthographic:
|
||||
return "正射球面投影,视点取食甚点,只画朝向视点的半个地球"
|
||||
default:
|
||||
return "等经纬投影"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user