force override
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
yiqiu
2025-11-21 22:38:57 +08:00
parent de4e3bf3c5
commit f44e19284d
4 changed files with 58 additions and 14 deletions

View File

@@ -70,20 +70,14 @@
};
});
// three-globe 实例:使用内置贴图 + 大气层 + 节点 + 飞线
// three-globe 实例:使用大气层 + 节点 + 飞线 + 空心陆地多边形
var globe = new ThreeGlobe({
waitForGlobeReady: true,
animateIn: true,
})
// 使用 three-globe 示例贴图:蓝色地球 + 地形凹凸
.globeImageUrl(
"https://unpkg.com/three-globe/example/img/earth-blue-marble.jpg"
)
.bumpImageUrl(
"https://unpkg.com/three-globe/example/img/earth-topology.png"
)
.showGlobe(true)
.showAtmosphere(true)
// 使用 three-globe 内置球体贴图,只保留大气层,陆地轮廓由 polygons 层绘制
.showGlobe(false)
.showAtmosphere(false)
.atmosphereColor("#2b9fff")
.atmosphereAltitude(0.18)
.showGraticules(false)
@@ -108,6 +102,51 @@
scene.add(globe);
// 按 hollow-globe 风格加载陆地多边形,绘制空心地球轮廓
(function loadLandPolygons() {
if (typeof topojson === "undefined") {
console.warn(
"[Globe] topojson-client is undefined, unable to render hollow globe polygons"
);
return;
}
// 请确保 /web/BlackFruit-web/assets/data/land-110m.json 存在,
// 内容为你刚才提供的 Topology JSON。
fetch("/web/BlackFruit-web/assets/data/land-110m.json")
.then(function (res) {
return res.json();
})
.then(function (landTopo) {
try {
var landGeo = topojson.feature(
landTopo,
landTopo.objects.land
).features;
globe
.polygonsData(landGeo)
.polygonCapMaterial(
new THREE.MeshLambertMaterial({
color: "darkslategrey",
side: THREE.DoubleSide,
})
)
.polygonSideColor(function () {
return "rgba(0,0,0,0)";
});
} catch (e) {
console.warn("[Globe] failed to parse land-110m topology:", e);
}
})
.catch(function (err) {
console.warn(
"[Globe] failed to load /web/BlackFruit-web/assets/data/land-110m.json:",
err
);
});
})();
// 暴露给调试用
if (typeof window !== "undefined") {
window.__globe = globe;