一位开发者发布了一个免费且可搜索的索引,列出了全球所有的海港和机场——共计 3,804 个港口和 9,640 个机场——无需注册或付费。该网站 theportindex.online 允许用户浏览数据,或以 CSV 或 JSON 格式下载完整数据集。

为什么需要这个索引

创建者最初想找一份干净、最新的全球海港列表,却碰了壁:大多数商业产品都设置了付费墙,而公开可用的列表往往已经过时多年。依赖不完整或陈旧的数据会迫使分析师浪费大量时间清理电子表格,这种成本在整个行业中不断累积。通过整合三个公开来源——美国政府港口索引、国际位置代码目录和一个众包机场数据库——开发者组建了一个任何人都可以立即使用的统一参考标准。

背后的数据来源

  • NGA World Port Index – 美国政府编制的资料,提供每个公认海港的基本细节。
  • UN/LOCODE – 联合国位置代码系统,为港口和机场增加了标准化的标识符。
  • OurAirports – 一个由社区维护的机场信息集合,包括跑道长度和坐标。

每个来源都提供了不同维度的信息,但没有一个能单独提供一个即开即用的、可搜索的目录。合并这些数据不仅仅是简单的复制粘贴;开发者必须解决不一致、重复条目和缺失字段的问题。

数据清洗:三个惨痛的教训

  1. 嵌入式换行符会破坏简易解析器 – 在引号字段内包含换行符的 CSV 文件无法通过简单的“按换行符分割”命令进行拆分。必须使用专业的 CSV 解析器才能保持行数据的完整性。
  2. 离群值会掩盖错误 – 一些油轮码头列出的深度为 900 米,这个数字属于系泊浮标而非港口。为了保持基于深度的排名可信度,必须过滤掉这些不合理的数值。
  3. 零值通常是占位符 – 记录为零的深度通常意味着测量值未知,而不是水面是平的。将零视为缺失数据可以保护任何依赖深度的分析的完整性。

超越原始数字的价值

该索引不仅仅是列出坐标。对于港口,它将深度转化为可以安全停靠的船舶等级,将单一指标转变为实用的决策辅助工具。对于机场,跑道长度被映射为可以运行的飞机类型,让飞行员和规划者能够一眼评估其能力。

一个空间网格将每个港口与其最近的机场联系起来,反之亦然,使该网站成为一个探索工具。例如,用户可以发现哪些机场位于特定港口的短途车程范围内——这一功能对于多式联运货运规划非常有用。

大规模构建静态网站引擎

整个前端运行在具有静态生成的 Next.js 之上。在构建过程中,大约 14,000 个页面(每个港口和机场一个)会被预渲染。由于没有数据库或服务器端逻辑,该网站不会产生持续的计算成本;它运行在内容分发网络 (CDN) 上,可以在全球范围内即时提供页面服务。

SEO 陷阱与“薄内容”修复方案

上传数千个模板化页面可能会引起搜索引擎的警觉,它们可能会认为该网站属于“薄内容 (thin content)”并惩罚其排名。当 AdSense 申请被拒绝时,开发者遇到了这个问题。补救措施是让完整的页面集对访客保持可见,但对每个类别中除前 400 个高质量页面以外的所有页面添加 noindex 指令。这告诉爬虫只有最有价值的页面才应该出现在搜索结果中,在提供完整数据集的同时保持了可信度。

谁能从中受益,以及局限性在哪里

  • 物流公司可以快速验证货轮是否符合港口的深度限制,而无需翻阅多个 PDF 文件。
  • 航空公司规划者可以立即获取跑道与飞机的对应关系,这对于航线可行性研究非常有用。
  • 开发者和研究人员可以获得干净的、机器可读的数据转储,以便导入自定义工具中。

项目下一步计划

创建者正在征求社区对新增功能的反馈。

总结

通过解决数据清洗带来的难题、增加推理层,并利用静态生成技术规避服务器成本,开发者证明了精简的架构同样能打造出具有全球实用价值的工具——前提是你愿意接受周期性的更新,并密切关注搜索引擎的相关指南。