惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recent Announcements
Recent Announcements
博客园 - 【当耐特】
博客园 - 三生石上(FineUI控件)
量子位
aimingoo的专栏
aimingoo的专栏
V
V2EX
Vercel News
Vercel News
B
Blog
M
MIT News - Artificial intelligence
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hacker News: Ask HN
Hacker News: Ask HN
TaoSecurity Blog
TaoSecurity Blog
N
News and Events Feed by Topic
D
DataBreaches.Net
Blog — PlanetScale
Blog — PlanetScale
S
Secure Thoughts
U
Unit 42
博客园 - 叶小钗
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
N
News | PayPal Newsroom
Help Net Security
Help Net Security
S
Security Affairs
Microsoft Security Blog
Microsoft Security Blog
W
WeLiveSecurity
博客园 - Franky
Forbes - Security
Forbes - Security
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
Schneier on Security
Schneier on Security
I
InfoQ
B
Blog RSS Feed
大猫的无限游戏
大猫的无限游戏
A
About on SuperTechFans
Webroot Blog
Webroot Blog
AWS News Blog
AWS News Blog
Last Week in AI
Last Week in AI
Security Archives - TechRepublic
Security Archives - TechRepublic
C
CERT Recently Published Vulnerability Notes
N
News and Events Feed by Topic
阮一峰的网络日志
阮一峰的网络日志
L
Lohrmann on Cybersecurity
SecWiki News
SecWiki News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
J
Java Code Geeks

无数

几何布朗运动下股票价格涨超/跌超50%概率计算步骤 两款软件助你方便调节 Windows 外接显示器亮度 iBasso DC07Pro 对比 EPZ TP55 从 Apple watch S4 升级到 S10 的使用体验 自己动手给 FiiO Q5s Type-C 版本更换电池 2025年9月底,265K+5080装机历程及体验 HomeAssistant 中使用 Vue 构建UI面板的简易方式 VuePress Toc 组件实现方案 推倒重构博客UI的要点记录
基于 MapBox 构建 VuePress 的旅行地图
晴和君 · 2024-08-15 · via 无数

静态博客下旅行地图的构建方式

发布于

基于 MapBox 构建 VuePress 的旅行地图

基于 MapBox 构建 VuePress 的旅行地图

最早在 Fatesinger 上看到了旅行地图插件,目前插件只提供了 WordPress 版本。 其地图地点标记的功能类似于 iOS 和 Mac OS 相册中根据地点来查找照片的功能, 另外还提供了文章关联功能,方便访问者在文章中查看附近地点文章。

构建思路

静态博客只需在构建时生成好相关数据,便可实现类似效果:

  • 地点关联文章部分,在生成静态页面时计算完成相关距离数据,筛选相近地点进行保存;
  • 地图展示部分,同样在生成时输出 MapBox 所需的 GeoJSON 格式文件即可。

实现细节

  1. 文章标记:在文章的 frontmatter 中手动或者通过逻辑增加地点信息。
  2. 汇总所有带地点标记文章:按地点汇总对应文章,并查本地数据表(城市及对应的经纬度)获取地点经纬度信息。
  3. 计算城市间距离:根据城市地点经纬度,计算两两城市间距离,并保存每个城市临近城市信息。
  4. 获取地点相关文章:根据当前文章城市地点,获取临近城市对应文章,按距离排序输出即可。
  5. 地图数据生成:使用第2点的数据,转换并输出对应的GeoJSON格式文件即可。

使用方式

若为国内城市,只需在涉及地点的文章的 frontmatter 中,指定地点信息即可:

若在地点索引文件GeoLoc.json文件中未找到相关地点信息,或需要增加没有相关文章的标记点,则需要手动在ExtraLoc.json中进行维护:

{
  "台北市": {
    "loc": [
      121.5365,
      25.0192
    ],
    "posts": [],
    "img": "",
    "nearby": {}
  }
}

实现效果

  • 自动根据文章地点标签获取经纬度信息
  • 自动计算距离并获取站内相关地点文章
  • 可交互式地图标记展示
  • 可独立管理地点
  • 深色模式切换

预览地址:相关文章 旅行地图

更新日志

© 商业转载请联系站长获得授权;
非商业转载请注明文章来源及链接。