土衣 2021-03-22 11:19 采纳率: 0%
浏览 301
已结题

已知地图GPS坐标点A和坐标点B,获取A点往B点直线走一定距离的坐标点经纬度?

微信小程序计步程序,地图上根据一些坐标点绘制了一个路线图,每两点直线连接。

现在有个问题解决不了,查找了很多资料都无法解决,简单点来说,

比如北京和天津两个坐标在地图上直线连接,距离是200公里。现在知道一个人今天走了20公里,进入小程序后,我要把这20公里的位置标注到地图上,也就是获取北京往天津直线走20公里的那个点的坐标经纬度?求解,谢谢大佬

现在使用的是腾讯地图

  • 写回答

9条回答 默认 最新

  • bj_0163_bj 2021-03-22 16:07
    关注

    这个转成xy 坐标系,就是普通的算直线上的点就可以了吧。

    import math
    ###经纬度转xy 坐标系
    def millerToXY (lon, lat):
        """
        :param lon: 经度
        :param lat: 维度
        :return:
        """
        xy_coordinate = []
        L = 6381372*math.pi*2    #地球周长
        W = L                    #平面展开,将周长视为X轴
        H = L/2                  #Y轴约等于周长一般
        mill = 2.3               #米勒投影中的一个常数,范围大约在正负2.3之间  
        x = lon*math.pi/180      #将经度从度数转换为弧度
        y = lat*math.pi/180      #将纬度从度数转换为弧度 
        y = 1.25*math.log(math.tan(0.25*math.pi+0.4*y))  #这里是米勒投影的转换 
        
        # 这里将弧度转为实际距离 ,转换结果的单位是公里
        x = (W/2)+(W/(2*math.pi))*x
        y = (H/2)-(H/(2*mill))*y
        xy_coordinate.append((int(round(x)),int(round(y))))
        return xy_coordinate
    
    ###xy坐标系转经纬度
    def xy_to_coor(x, y):
        lonlat_coordinate = []
        L = 6381372 * math.pi*2
        W = L
        H = L/2
        mill = 2.3
        lat = ((H/2-y)*2*mill)/(1.25*H)
        lat = ((math.atan(math.exp(lat))-0.25*math.pi)*180)/(0.4*math.pi)
        lon = (x-W/2)*360/W
        lonlat_coordinate.append((round(lon,7),round(lat,7)))
        return lonlat_coordinate

     

    评论

报告相同问题?

悬赏问题

  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决