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

跪求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 (标签-STM32|关键词-智能小车)
  • ¥20 关于#stm32#的问题,请各位专家解答!
  • ¥15 (标签-python)
  • ¥15 第一个已完成,求第二个做法
  • ¥20 搭建awx,试了很多版本都有错
  • ¥15 java corba的客户端该如何指定使用本地某个固定IP去连接服务端?
  • ¥15 activiti工作流问题,求解答
  • ¥15 有人写过RPA后台管理系统么?
  • ¥15 Bioage计算生物学年龄
  • ¥20 如何将FPGA Alveo U50恢复原来出厂设置哇?