请选择 进入手机版 | 继续访问电脑版

121

积分

0

精华

3 小时

在线时间

应届白菜

Rank: 1

发表于 2019-5-28 11:55:16
QGC里面的谷歌中国地图有火星坐标法和WGS84坐标法,我按照网上的做法通过修改瓦片获取地址来尝试实现WGS84的,但发现似乎不起作用,因为我导入的KML文件还是显示偏差,这个怎么解决呢?

扫一扫浏览分享
回复

使用道具 举报

477

积分

1

精华

22 小时

在线时间

技术大V

Rank: 4

发表于 2019-5-28 13:19:16
本帖最后由 AmovlabPony 于 2019-5-28 13:20 编辑
weifeng727 发表于 2019-5-28 11:55
QGC里面的谷歌中国地图有火星坐标法和WGS84坐标法,我按照网上的做法通过修改瓦片获取地址来尝试实现WGS84 ...

GCJ02坐标系 即火星坐标系,WGS84坐标系经加密后的坐标系。 出于国家安全考虑,国内所有导航电子地图必须使用国家测绘局制定的加密坐标系统,即将一个真实的经纬度坐标加密成一个不正确的经纬度坐标。

纠偏和加偏跟对的是经纬度点,谷歌的卫星地图的直接采用的WSG84坐标,街道地图采用的是GCJ02坐标系
这个博客有相关的转化实现,可以参考一下:
各坐标系简介与转换
回复

使用道具 举报

477

积分

1

精华

22 小时

在线时间

技术大V

Rank: 4

发表于 2019-5-28 13:25:11
weifeng727 发表于 2019-5-28 11:55
QGC里面的谷歌中国地图有火星坐标法和WGS84坐标法,我按照网上的做法通过修改瓦片获取地址来尝试实现WGS84 ...

GCJ02坐标系 即火星坐标系,WGS84坐标系经加密后的坐标系。 出于国家安全考虑,国内所有导航电子地图必须使用国家测绘局制定的加密坐标系统,即将一个真实的经纬度坐标加密成一个不正确的经纬度坐标。

谷歌的街道地图在中国区域内处于保护的目的在WGS84坐标系上加偏形成了GCJ02坐标系,所以原WGS84的数据如果要在街道地图上显示需要进行加偏,如果是在街道地图上去航点发送给飞机需要纠偏转化为GGS84坐标发送给飞机。

纠偏和加偏针对的是一个经纬度点
各坐标系简介与转换,包括WGS84(地球坐标系)、GCJ02(火星坐标系)和BD09
回复

使用道具 举报

121

积分

0

精华

3 小时

在线时间

应届白菜

Rank: 1

发表于 2019-5-29 10:01:10
AmovlabPony 发表于 2019-5-28 13:25
GCJ02坐标系 即火星坐标系,WGS84坐标系经加密后的坐标系。 出于国家安全考虑,国内所有导航电子地图必须 ...

有没有办法只需要选择对应的地图瓦片服务器地址就行了,而不需要自己手动去转换?我看网友给的地址好像是很多年前的,都失效了
回复

使用道具 举报

121

积分

0

精华

3 小时

在线时间

应届白菜

Rank: 1

发表于 2019-5-30 09:27:26
AmovlabPony 发表于 2019-5-28 13:25
GCJ02坐标系 即火星坐标系,WGS84坐标系经加密后的坐标系。 出于国家安全考虑,国内所有导航电子地图必须 ...

感谢你的帮助,我手动增加了纠偏代码把问题解决了
回复

使用道具 举报

121

积分

0

精华

3 小时

在线时间

应届白菜

Rank: 1

发表于 2019-6-12 20:33:35

QGC的源码二次开发关于visualItems的问题

本帖最后由 weifeng727 于 2019-6-13 09:07 编辑

想请教QGC的源码二次开发问题,难度可能有点大,大概的意思就是利用下图这个visualItems实现了commandListEditor的UI实现,那么我的需求是想参考前面说的UI实现做一个很类似的功能需求,但是始终在C++里修改model时无法在qml写的view上进行更新,我不知道是不是漏了什么重要的细节,所以似乎导致了我的visualItems2是有问题的(涉及到的代码和文件较多,我就简单点描述这个问题吧,可以私聊我进行有偿服务):

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

477

积分

1

精华

22 小时

在线时间

技术大V

Rank: 4

发表于 2019-6-13 09:18:36
weifeng727 发表于 2019-6-12 20:33
想请教QGC的源码二次开发问题,难度可能有点大,大概的意思就是利用下图这个visualItems实现了commandListE ...

根据我的经验,建议按照下面的步骤进行问题的排查:
1、首先在C++代码中,将你的数据打印出来,确保你的后端将要显示的数据是如你期待的,进而确定是前端显示的问题
2、接下来,再确定qml显示的问题。需要注意的是你再C++端的修改需要emit信号。如你提到的:
  1. Q_PROPERTY(QmlObjectListModel*  visualItems             READ visualItems                NOTIFY visualItemsChanged)
复制代码

更改属性时,emit visualItemsChanged()。
回复

使用道具 举报

121

积分

0

精华

3 小时

在线时间

应届白菜

Rank: 1

发表于 2019-6-13 10:28:39
AmovlabPony 发表于 2019-6-13 09:18
根据我的经验,建议按照下面的步骤进行问题的排查:
1、首先在C++代码中,将你的数据打印出来,确保你的 ...

感谢这位大牛,我每次C++修改完model后,emit下信号就可以了,但是我还是疑问,QGC原有的那个visualItems似乎在c++修改model后并没有emit visualItemsChanged(),为什么qml那头知道要更新UI呢
回复

使用道具 举报

477

积分

1

精华

22 小时

在线时间

技术大V

Rank: 4

发表于 2019-6-13 11:27:24
weifeng727 发表于 2019-6-13 10:28
感谢这位大牛,我每次C++修改完model后,emit下信号就可以了,但是我还是疑问,QGC原有的那个visualItems ...

建议自己开发在修改时候发射信号进行一下更新,可以避免踏一些不必要的坑

关于QGC这块儿的问题,我刚才也进一步跟进了一下代码,没有看到在每次更新visualItems时便发射信号,只是申请visualItems的空间时发射了信号。暂时我还无法给出很好的解释。
对这块儿有更深的理解,可以一块儿讨论分享。
回复

使用道具 举报

121

积分

0

精华

3 小时

在线时间

应届白菜

Rank: 1

发表于 2019-6-13 11:31:52
AmovlabPony 发表于 2019-6-13 11:27
建议自己开发在修改时候发射信号进行一下更新,可以避免踏一些不必要的坑

关于QGC这块儿的问题,我刚才 ...

这确实值得探讨
回复

使用道具 举报

下一页 »
返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

官方淘宝店

 阿木社区

微信公众号

AMOV_UAV

扫一扫,快速加入

群号652692981

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