1. 程式人生 > >已知一點經緯度和距離,方位角;求另外一點的經緯度

已知一點經緯度和距離,方位角;求另外一點的經緯度

經緯度 經緯 ant cat cse rpo pass quest red

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

  

已知一點經緯度和距離,方位角;求另外一點的經緯度