找回密码
 立即注册

微信扫码登录

搜索
查看: 2264|回复: 46

[UI界面] 【天地图】告别白屏!轻松替换 HomeAssistant 地图服务商

[复制链接]
nxy 手机认证

1

主题

16

回帖

261

积分

中级会员

积分
261
金钱
244
HASS币
0
发表于 2025-6-15 17:21:33 | 显示全部楼层 |阅读模式
本帖最后由 nxy 于 2025-9-15 01:11 编辑

dashboard-map_0.png

零、前言

由于 HomeAssistant 默认使用境外 Carto 地图,常常加载缓慢甚至超时。

而百度地图、高德地图等地图服务由于坐标系和API差异,通常需要使用第三方卡片或者APP。如果相关组件停止更新,可能需要花费大量时间进行迁移。

本教程选择“天地图”作为地图服务提供商,可以免费使用地图瓦片 API(1万次/天)。

该方案不会导致坐标偏移,也无需修改任何现有的地图卡片;如果方案失效,仅需移除脚本,即可快速还原。

完成设置后,将在网页、APP端中的所有原生地图组件中生效。

tips:我可能使用了较新的 JS 语法,使用低版本 Webview 的旧机器可能无法正常替换。

一、步骤

  1. 前往天地图官网,注册并获取服务许可(Key)。

    • 注册为个人开发者即可。

    • 谨慎填写应用名称,如果乱填可能会被删除应用(被删可重新创建)。

  2. 打开 HomeAssistant 配置文件夹,在 /config/configuration.yaml 文件中添加以下代码。

    # Load frontend themes from the themes folder
    frontend:
     themes: !include_dir_merge_named themes
     extra_module_url:
       - /local/hass_tianditu.js
    • 如果frontend.extra_module_url已存在,则仅需添加一项 /local/hass_tianditu.js
  3. Github Gist 中下载 hass_tianditu.js

  4. 在脚本首行填写申请的“天地图Key”,然后将其上传至 /config/www

  5. 重启 HomeAssistant 即可生效。

二、原理

通过监听 DOM 树的变化,自动将 Carto 地图的瓦片链接替换为天地图的底图和标注图层链接。

当遇到请求的地图级别(Z)超过天地图最大支持级别时,使用算法将瓦片贴图降级并放大。




评分

参与人数 2金钱 +32 收起 理由
隔壁的王叔叔 + 12 高手,这是高手!
dscao + 20 感谢楼主分享!这个好,直接替换系统地图了 ...

查看全部评分

回复

使用道具 举报

14

主题

248

回帖

1445

积分

金牌会员

积分
1445
金钱
1173
HASS币
40
发表于 2025-6-18 15:59:48 | 显示全部楼层
你贴的js文件代码有问题,大于号 小于号 都变成了 > 和 <
回复

使用道具 举报

14

主题

248

回帖

1445

积分

金牌会员

积分
1445
金钱
1173
HASS币
40
发表于 2025-6-18 16:03:41 | 显示全部楼层
还有,天地图的url报错 https证书错误 NET::ERR_CERT_AUTHORITY_INVALID
需要把  http://t4.tianditu.com  改为  http://t4.tianditu.gov.cn
回复

使用道具 举报

nxy 手机认证

1

主题

16

回帖

261

积分

中级会员

积分
261
金钱
244
HASS币
0
 楼主| 发表于 2025-6-20 12:47:17 | 显示全部楼层
lovelyelfpop 发表于 2025-6-18 15:59
你贴的js文件代码有问题,大于号 小于号 都变成了 > 和 <

这个似乎是论坛bug,带有标题的markdown里面代码的部分字符会被转义,目前我没有找到解决方法。
回复

使用道具 举报

nxy 手机认证

1

主题

16

回帖

261

积分

中级会员

积分
261
金钱
244
HASS币
0
 楼主| 发表于 2025-6-20 12:49:26 | 显示全部楼层
lovelyelfpop 发表于 2025-6-18 16:03
还有,天地图的url报错 https证书错误 NET::ERR_CERT_AUTHORITY_INVALID
需要把  http://t4.tianditu.com   ...

噢,我的HA是http的,所以可以直接用http://t4.tianditu.com

如果HA是https可能就要用https://t4.tianditu.gov.cn
回复

使用道具 举报

0

主题

29

回帖

337

积分

中级会员

积分
337
金钱
308
HASS币
0
发表于 2025-6-25 19:17:18 | 显示全部楼层
能不能把Js代码文件放出来
回复

使用道具 举报

11

主题

105

回帖

1316

积分

金牌会员

积分
1316
金钱
1200
HASS币
0
发表于 2025-8-8 19:32:10 | 显示全部楼层
眼拙,替换后没看出任何区别
回复

使用道具 举报

nxy 手机认证

1

主题

16

回帖

261

积分

中级会员

积分
261
金钱
244
HASS币
0
 楼主| 发表于 2025-8-12 08:50:18 | 显示全部楼层
xiongmx 发表于 2025-8-8 19:32
眼拙,替换后没看出任何区别

论坛有bug,大于号和小于号会变成 > 和 < ,需要替换回来
回复

使用道具 举报

0

主题

23

回帖

152

积分

注册会员

积分
152
金钱
129
HASS币
0
发表于 2025-8-13 18:48:18 | 显示全部楼层
nxy 发表于 2025-8-12 08:50
论坛有bug,大于号和小于号会变成 > 和 < ,需要替换回来

替换了大于小于号,前端里的地图依然还是OpenstreetMap
回复

使用道具 举报

nxy 手机认证

1

主题

16

回帖

261

积分

中级会员

积分
261
金钱
244
HASS币
0
 楼主| 发表于 2025-8-15 13:52:05 | 显示全部楼层
hz153jht 发表于 2025-8-13 18:48
替换了大于小于号,前端里的地图依然还是OpenstreetMap

你可以看看控制台有没有报错什么的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-10-25 14:21 , Processed in 0.060309 second(s), 7 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表