『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: ryan_public

[技术探讨] device_tracker传回的gps座标,有办法进行修正赋予新值吗?

[复制链接]

175

主题

2967

帖子

7606

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7606
金钱
4614
HASS币
398

活跃会员教程狂人灌水之王

QQ
发表于 2020-3-5 22:45:26 | 显示全部楼层
nichwang 发表于 2020-3-5 07:57
确实有这需求,手机的定位能正常反应在HA里面。
但是有些车子自带的定位上传到HA里面却是经过火星坐标转 ...

哦  看来楼主是有TSL的人~~
回复

使用道具 举报

15

主题

192

帖子

2057

积分

论坛技术达人

积分
2057
金钱
1845
HASS币
0

卓越贡献

发表于 2020-7-22 16:31:53 | 显示全部楼层
坐标转换代码
    def GCJ2WGS(self,lon,lat):
        a = 6378245.0 # 克拉索夫斯基椭球参数长半轴a
        ee = 0.00669342162296594323 #克拉索夫斯基椭球参数第一偏心率平方
        PI = 3.14159265358979324 # 圆周率

        x = lon - 105.0
        y = lat - 35.0

        dLon = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * math.sqrt(abs(x));
        dLon += (20.0 * math.sin(6.0 * x * PI) + 20.0 * math.sin(2.0 * x * PI)) * 2.0 / 3.0;
        dLon += (20.0 * math.sin(x * PI) + 40.0 * math.sin(x / 3.0 * PI)) * 2.0 / 3.0;
        dLon += (150.0 * math.sin(x / 12.0 * PI) + 300.0 * math.sin(x / 30.0 * PI)) * 2.0 / 3.0;

        dLat = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * math.sqrt(abs(x));
        dLat += (20.0 * math.sin(6.0 * x * PI) + 20.0 * math.sin(2.0 * x * PI)) * 2.0 / 3.0;
        dLat += (20.0 * math.sin(y * PI) + 40.0 * math.sin(y / 3.0 * PI)) * 2.0 / 3.0;
        dLat += (160.0 * math.sin(y / 12.0 * PI) + 320 * math.sin(y * PI / 30.0)) * 2.0 / 3.0;
        radLat = lat / 180.0 * PI
        magic = math.sin(radLat)
        magic = 1 - ee * magic * magic
        sqrtMagic = math.sqrt(magic)
        dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * PI);
        dLon = (dLon * 180.0) / (a / sqrtMagic * math.cos(radLat) * PI);
        wgsLon = lon - dLon
        wgsLat = lat - dLat
        return [wgsLat,wgsLon]
回复

使用道具 举报

8

主题

81

帖子

409

积分

论坛分享达人

积分
409
金钱
328
HASS币
10
发表于 2020-7-22 20:43:40 | 显示全部楼层
Node-Red可以实现
Service里有device_tracker.see可以调用,参数
gps: [latitude, longitude]
gps_accuracy: [整数]

可以每次坐标上传以后,用function做处理然后传给device_tracker.see更新坐标地址
回复

使用道具 举报

16

主题

217

帖子

2229

积分

论坛技术达人

积分
2229
金钱
1977
HASS币
140
发表于 2020-8-8 21:58:25 | 显示全部楼层
Kellindil 发表于 2020-7-22 20:43
Node-Red可以实现
Service里有device_tracker.see可以调用,参数
gps: [latitude, longitude]

mqtt_json device_tracker能不能用,
我配置的一直不会显示设备
只能在nr里面用device_tracker.see
回复

使用道具 举报

26

主题

304

帖子

1670

积分

金牌会员

Rank: 6Rank: 6

积分
1670
金钱
1366
HASS币
0
发表于 2020-8-25 09:06:50 | 显示全部楼层
找下我DW帖子,以前改过,用的api
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-26 09:37 , Processed in 0.148726 second(s), 27 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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