weixin_42342672 2021-06-11 23:55 采纳率: 50%
浏览 504
已采纳

跪求xy坐标转经纬度转换公式

现有A、B两点的xy坐标位置,A点的坐标为(19573,-19145)B点的坐标为
-19646,17527,已知A点的经纬度为(118.81877912721681,32.28919981944475),B点的经纬度为(118.81327445028852,32.2877569526169),需要根据AB两点的xy坐标和经纬度得出转换公式。

 

  • 写回答

2条回答 默认 最新

  • 爱晚乏客游 2021-06-12 03:35
    关注

    简单写了个推理过程,计算用的python的numpy库。

    import numpy as np
    np.set_printoptions(precision=16) #设置下输出长度
    a=[19573.0,-19145.0]
    aa=[118.81877912721681,32.28919981944475]
    
    b=[-19646.0,17527.0]
    bb=[118.81327445028852,32.2877569526169]
    A=np.array([a,b],dtype=np.float64) #将a和b合并在一起
    B=np.array([aa,bb],dtype=np.float64) #将aa和bb合并
    inv_A=np.linalg.inv(A) #A的逆矩阵
    X= np.linalg.inv(A).dot(B)     #这个步骤就是 M=A-1 *b
    print("#############变换矩阵:#################")
    print(X)
    print("###############验证结果:#####################")
    print("A点坐标变换结果:")
    print(np.array(a).dot(X))
    print("B点坐标变换结果:")
    print(np.array(b).dot(X))
    
    #out
    #############变换矩阵:#################
    [[-0.1317705429596557 -0.035808893778398 ]
     [-0.140922622955161  -0.0382959873462538]]
    ###############验证结果:#####################
    A点坐标变换结果:
    [118.8187791272162   32.28919981944466]
    B点坐标变换结果:
    [118.8132744502891   32.28775695261709]

    X=[ a    b
           c     d ]

    所以最后的结果是坐标A[x,y]换算到经纬度的换算公式

    经度=a*x+c*y= -0.13177054*x-0.14092262 *y

    纬度=b*x+d*y=-0.03580889*x -0.03829599*y

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 MapReduce实现倒排索引失败
  • ¥15 luckysheet
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题