feat: finalize Kyushu S-52 0.4.12 release

This commit is contained in:
OpenAI Codex
2026-09-20 14:39:00 +08:00
parent 99fdbdc694
commit aad1b403de
5 changed files with 283 additions and 12 deletions

View File

@@ -44,7 +44,7 @@
<body>
<div id="toolbar">
<strong>九州 S-52 PBF 对比</strong>
<span class="meta">左:Production v3 / 0.4.11 本地 PBF 右:extentfix 原始数据源</span>
<span class="meta">左:Production v4 / 0.4.12 本地 PBF 右:extentfix 原始数据源</span>
<label><input id="sync-toggle" type="checkbox" checked />同步视图</label>
<button id="reset-btn" type="button">重置九州</button>
<button id="debug-toggle-btn" type="button">调试</button>
@@ -63,7 +63,7 @@
<section class="pane" id="left-pane">
<div id="left-map" class="map"></div>
<canvas id="left-ca-overlay" class="ca-overlay" aria-hidden="true"></canvas>
<div class="pane-title"><b>左:九州 Production v3 / 0.4.11</b><span id="left-state" class="state">等待参考 style…</span></div>
<div class="pane-title"><b>左:九州 Production v4 / 0.4.12</b><span id="left-state" class="state">等待参考 style…</span></div>
<div id="left-inspector" class="inspector empty">点击任一侧海图,对比同一位置的 Feature。</div>
<div class="divider-label">LOCAL</div>
</section>
@@ -598,8 +598,8 @@ function cloneReferenceForLocal(referenceStyle){
source.minzoom=5;
source.maxzoom=12;
source.bounds=[128.0,29.5,132.5,34.8];
source.attribution="CM95 九州 S-52 Production 0.4.11 multi-light";
style.name=(style.name || "NavSea") + " / Kyushu Production v3 / 0.4.11";
source.attribution="CM95 九州 S-52 Production 0.4.12 OpenCPN coverage";
style.name=(style.name || "NavSea") + " / Kyushu Production v4 / 0.4.12";
return style;
}
@@ -612,7 +612,7 @@ function prepareS52Style(raw){
source.minzoom=5;
source.maxzoom=12;
source.bounds=[128.0,29.5,132.5,34.8];
source.attribution="CM95 九州 S-52 Production 0.4.11 multi-light";
source.attribution="CM95 九州 S-52 Production 0.4.12 OpenCPN coverage";
style.sprite=location.origin + "/s52/sprite";
if(referenceStyleTemplate && referenceStyleTemplate.glyphs){
style.glyphs=referenceStyleTemplate.glyphs;
@@ -670,9 +670,9 @@ leftMap.on("style.load",function(){
const sources=Object.keys((leftMap.getStyle() || {}).sources || {});
if(sources.includes("cm95")){
installRuntimePreviewLayers(leftMap);
setState(leftState,"Production v3 / 0.4.11 / S-52 style" + (debugRuntimePreview.checked ? " + runtime preview" : ""),"ok");
setState(leftState,"Production v4 / 0.4.12 / S-52 style" + (debugRuntimePreview.checked ? " + runtime preview" : ""),"ok");
}else if(sources.includes("navsea_delivery")){
setState(leftState,"Production v3 / 0.4.11 / extentfix style","ok");
setState(leftState,"Production v4 / 0.4.12 / extentfix style","ok");
}
applyDebugStyles();
refreshLightArcFeatures();
@@ -733,7 +733,7 @@ debugLeftS52.addEventListener("change",function(){
debugRuntimePreview.addEventListener("change",function(){
if(leftMap.getSource("cm95")){
installRuntimePreviewLayers(leftMap);
setState(leftState,"Production v3 / 0.4.11 / S-52 style" + (debugRuntimePreview.checked ? " + runtime preview" : ""),"ok");
setState(leftState,"Production v4 / 0.4.12 / S-52 style" + (debugRuntimePreview.checked ? " + runtime preview" : ""),"ok");
applyDebugStyles();
}
});

View File

@@ -7,7 +7,7 @@ from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
from pathlib import Path
from urllib.parse import urlparse
RELEASE_ID = "cm95-d1-62a85bd40d3a-1c27f0a66f6b"
RELEASE_ID = "cm95-d1-62a85bd40d3a-57e72826db1d"
def parse_args():
@@ -28,7 +28,7 @@ def main():
manifest_path = release_dir / "release_manifest_v1.json"
html_path = web_root / "kyushu_compare.html"
assets_root = project_root / "build" / "fukuoka_s52_web" / "site" / "assets"
s52_style_path = project_root / "build" / "s52_style_compiler_release_1c27f0a66f6b" / "style.s52.json"
s52_style_path = project_root / "build" / "s52_style_compiler_release_57e72826db1d" / "style.s52.json"
s52_sprite_root = project_root / "build" / "s52_resources_v2" / "final"
required = [