新闻详情

新闻详情

首页 / 资讯中心 / 详情

Node 批量下载 Geoscene / ArcGIS 字体(pbf)完整方案

发布时间:2026/9/25 1:28:36来源:尧图网络
Node 批量下载 Geoscene / ArcGIS 字体(pbf)完整方案
在使用 Geoscene / ArcGIS JS API 开发地图应用时经常会遇到一个问题❗字体资源依赖远程doc.geoscene.cn在内网或网络受限环境下无法加载最终导致✔ 点正常显示❌ 中文标注不显示❌ TextSymbol 无效 一、Node 批量下载字体核心思路 将远程 fonts 资源批量下载到本地/public/fonts 二、目标结构最终项目结构public/ fonts/ arial-unicode-ms-regular/0-255.pbf256-511.pbf...19968-20223.pbf⚙️ 三、Node 下载脚本完整可用 download-fonts.jsconstfsrequire(fs);constpathrequire(path);consthttpsrequire(https);// 字体 Unicode 区间精简中文覆盖constranges[0-255,256-511,512-767,768-1023,1024-1279,1280-1535,1536-1791,1792-2047,2048-2303,2304-2559,19968-20223,20224-20479,20480-20735,20736-20991,20992-21247];// 字体源 constbaseUrlhttps://doc.geoscene.cn/resources/fonts/arial-unicode-ms-regular/;// 输出目录 constoutDirpath.resolve(__dirname,public/fonts/arial-unicode-ms-regular);fs.mkdirSync(outDir,{recursive:true});// 下载函数带重试functiondownload(url,filePath,retry2){returnnewPromise((resolve){constfilefs.createWriteStream(filePath);https.get(url,(res){if(res.statusCode!200){console.log(❌ missing:,url);file.close();if(fs.existsSync(filePath))fs.unlinkSync(filePath);returnresolve(false);}res.pipe(file);file.on(finish,(){file.close();console.log(✔,path.basename(filePath));resolve(true);});}).on(error,async(){if(retry0){console.log( retry:,url);resolve(awaitdownload(url,filePath,retry-1));}else{console.log(❌ failed:,url);resolve(false);}});});}// 主流程 asyncfunctionrun(){console.log(\n Start downloading fonts...\n);letsuccess0;letfail[];for(constrofranges){consturl${baseUrl}${r}.pbf;constfilePathpath.join(outDir,${r}.pbf);constokawaitdownload(url,filePath);if(ok)success;elsefail.push(r);}console.log(\n);console.log( DOWNLOAD COMPLETE);console.log(✔ success:,success);console.log(❌ failed:,fail.length);if(fail.length){console.log(\n⚠ missing ranges:);console.log(fail);}console.log(\n output:,outDir);}run();▶️ 四、使用方法1️⃣ 放入项目根目录或者新建空文件夹执行下载之后将下载的文件拷贝到需要的地方。download-fonts.js2️⃣ 执行下载nodedownload-fonts.js3️⃣ 输出结果✔0-255.pbf ✔19968-20223.pbf...⚙️ 七、前端配置1️⃣ 设置 fontsUrlimportesriConfigfromgeoscene/config;esriConfig.fontsUrl/fonts;2️⃣ TextSymbol 使用importTextSymbolfromgeoscene/symbols/TextSymbol;constsymbolnewTextSymbol({text:朝阳区,color:black,font:{family:arial-unicode-ms-regular,size:12}}); 八、关键优化点✔ 1. 为什么要 Node 下载相比手动下载方式问题手动下载易漏文件浏览器点下载慢 不完整Node脚本✔ 自动化 可重复✔ 2. 为什么要分区间Geoscene 使用glyph 分片加载机制Unicode区间 → 对应 pbf 文件✔ 3. 必须包含中文区间19968–21247 ✔ 必须否则❌ 中文直接空白无报错 九、常见坑总结❌ 1. fontsUrl 没配esriConfig.fontsUrl/fonts;❌ 必须❌ 2. 少区间文件 表现中文部分缺字无报错❌ 3. 仍访问 doc.geoscene.cn 说明本地 fonts 没生效 十、总结Node 下载字体的核心价值 将 Geoscene 依赖的远程字体资源本地化最终实现✔ 离线可用✔ 中文完整显示✔ 不依赖 doc.geoscene.cn✔ 企业可部署
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

FOC控制算法核心解析:从坐标变换到电流环与工程避坑 2026/9/25 2:10:02

FOC控制算法核心解析:从坐标变换到电流环与工程避坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Hypothesis 实用指南全解析:健康检查、类型提示、自定义数据库、测试检测与外部模糊测试 2026/9/25 2:09:56

Hypothesis 实用指南全解析:健康检查、类型提示、自定义数据库、测试检测与外部模糊测试

测试开发工具 【免费下载链接】hypothesis The property-based testing library for Python 项目地址: https://gitcode.com/gh_mirrors/hy/hypothesis 点击查看 免费下载 导读 本文基于 Hypothesis 官方文档中的 How-to 指南(hypothesis/docs/how-to/…

阅读更多 →
VisiData DirSheet 完全指南:把终端目录变成可浏览、可编辑的数据表 2026/9/25 2:09:56

VisiData DirSheet 完全指南:把终端目录变成可浏览、可编辑的数据表

数据分析CLI数据可视化 【免费下载链接】visidata A terminal spreadsheet multitool for discovering and arranging data 项目地址: https://gitcode.com/gh_mirrors/vi/visidata 点击查看 免费下载 导读 DirSheet 是 VisiData 内置的目录数据表:打开…

阅读更多 →
Android-ObservableScrollView 支持的控件清单:从 ObservableListView 到 ObservableRecyclerView 的统一滚动监听方案 2026/9/25 2:09:43

Android-ObservableScrollView 支持的控件清单:从 ObservableListView 到 ObservableRecyclerView 的统一滚动监听方案

移动开发UI组件 【免费下载链接】Android-ObservableScrollView Android library to observe scroll events on scrollable views. 项目地址: https://gitcode.com/gh_mirrors/an/Android-ObservableScrollView 点击查看 免费下载 本篇技术指南围绕 Android-Observ…

阅读更多 →
.NET 4.0下的C#智能脚本编辑器:基于Roslyn的运行时编译与补全实现 2026/9/25 2:09:37

.NET 4.0下的C#智能脚本编辑器:基于Roslyn的运行时编译与补全实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
weworkhook风险与合规思考:GPS定位伪造技术的道德边界与安全警示 2026/9/25 2:09:37

weworkhook风险与合规思考:GPS定位伪造技术的道德边界与安全警示

weworkhook风险与合规思考:GPS定位伪造技术的道德边界与安全警示 【免费下载链接】weworkhook 企业微信打卡助手,在Android设备上安装Xposed后hook企业微信获取GPS的参数达到修改定位的目的。注意运行环境仅支持Android设备且已经ROOTXposed框架 &#x…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉