zoukankan      html  css  js  c++  java
  • 已知一点经纬度和距离,方位角;求另外一点的经纬度

    It seems you are measuring distance (R) in meters, and bearing (theta) counterclockwise from due east. And for your purposes (hundereds of meters), plane geometry should be accurate enough. In that case,
    
    dx = R*cos(theta) ; theta measured counterclockwise from due east
    dy = R*sin(theta) ; dx, dy same units as R
    If theta is measured clockwise from due north (for example, compass bearings), the calculation for dx and dy is slightly different:
    
    dx = R*sin(theta)  ; theta measured clockwise from due north
    dy = R*cos(theta)  ; dx, dy same units as R
    In either case, the change in degrees longitude and latitude is:
    
    delta_longitude = dx/(111320*cos(latitude))  ; dx, dy in meters
    delta_latitude = dy/110540                   ; result in degrees long/lat
    The difference between the constants 110540 and 111320 is due to the earth's oblateness (polar and equatorial circumferences are different).
    
    Here's a worked example, using the parameters from a later question of yours:
    
    Given a start location at longitude -87.62788 degrees, latitude 41.88592 degrees, find the coordinates of the point 500 meters northwest from the start location.
    
    If we're measuring angles counterclockwise from due east, "northwest" corresponds to theta=135 degrees. R is 500 meters.
    
    dx = R*cos(theta) 
       = 500 * cos(135 deg) 
       = -353.55 meters
    
    dy = R*sin(theta) 
       = 500 * sin(135 deg) 
       = +353.55 meters
    
    delta_longitude = dx/(111320*cos(latitude)) 
                    = -353.55/(111320*cos(41.88592 deg))
                    = -.004266 deg (approx -15.36 arcsec)
    
    delta_latitude = dy/110540
                   = 353.55/110540
                   =  .003198 deg (approx 11.51 arcsec)
    
    Final longitude = start_longitude + delta_longitude
                    = -87.62788 - .004266
                    = -87.632146
    
    Final latitude = start_latitude + delta_latitude
                   = 41.88592 + .003198
                   = 41.889118
    

      

  • 相关阅读:
    solus系统配置
    Linux中常用操作命令
    安装debian 9.1后,中文环境下将home目录下文件夹改为对应的英文
    Java学习之路(书籍推荐)
    tomcat实现文件打开下载功能
    mysql导入sql文件过大或连接超时的解决办法
    启动tomcat不出现命令窗口
    @Transactional注解*
    session处理超时的三种方式
    spingmvc 返回json数据日期格式化方法
  • 原文地址:https://www.cnblogs.com/seisjun/p/9570283.html
Copyright © 2011-2022 走看看