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

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
The Exploit Database - CXSecurity.com
WordPress大学
WordPress大学
L
LangChain Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 聂微东
J
Java Code Geeks
T
Tailwind CSS Blog
大猫的无限游戏
大猫的无限游戏
博客园 - 【当耐特】
阮一峰的网络日志
阮一峰的网络日志
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Engineering at Meta
Engineering at Meta
M
MIT News - Artificial intelligence
A
About on SuperTechFans
Simon Willison's Weblog
Simon Willison's Weblog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 叶小钗
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Threatpost
T
Threat Research - Cisco Blogs
GbyAI
GbyAI
P
Proofpoint News Feed
The GitHub Blog
The GitHub Blog
AWS News Blog
AWS News Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
S
Securelist
I
InfoQ
N
News and Events Feed by Topic
I
Intezer
A
Arctic Wolf
P
Proofpoint News Feed
Martin Fowler
Martin Fowler
L
Lohrmann on Cybersecurity
S
Secure Thoughts
P
Privacy & Cybersecurity Law Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
SecWiki News
SecWiki News
P
Palo Alto Networks Blog
MongoDB | Blog
MongoDB | Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
H
Help Net Security
B
Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
V2EX - 技术
V2EX - 技术
S
SegmentFault 最新的问题
Application and Cybersecurity Blog
Application and Cybersecurity Blog
人人都是产品经理
人人都是产品经理
PCI Perspectives
PCI Perspectives
F
Fortinet All Blogs

无数

几何布朗运动下股票价格涨超/跌超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": {}
  }
}

实现效果

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

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

更新日志

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