How to calculate the middle point between two points on the Earth in matlab?
47 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Ray Lee
el 9 de Jul. de 2015
Comentada: Ted Shultz
el 20 de Ag. de 2019
Given the latitudes and longitudes of two points, how to get the middle point efficiently?
My trouble is there are millions of point pairs to calculate....
2 comentarios
Sad Grad Student
el 9 de Jul. de 2015
could you give an example of your input and the expected output?
James Tursa
el 9 de Jul. de 2015
Editada: James Tursa
el 9 de Jul. de 2015
Middle point on a great circle arc assuming a sphere? Or something else?
How is your data stored?
Respuesta aceptada
Mohammad Abouali
el 10 de Jul. de 2015
Editada: Mohammad Abouali
el 10 de Jul. de 2015
Go to this page you will find bunch of useful formula. The one that you are looking for is called "midpoint" on that page. You have the JavaScript code, but implementation is rather easy
% lat1,lat2,lon1,lon2 should be in radian
Bx = cos(lat2) * cos(lon2-lon1);
By = cos(lat2) * sin(lon2-lon1);
latMid = atan2(sin(lat1) + sin(lat2), ...
sqrt( (cos(lat1)+Bx)*(cos(lat1)+Bx) + By*By ) );
lonMid = lon1 + atan2(By, cos(lat1) + Bx);
1 comentario
Ted Shultz
el 20 de Ag. de 2019
Here is the matlab code of the formula provided by Mohammad, but all in degrees. Often lat/lon are in degrees, so this nearly identical code my be easier to use.
function [latMid, lonMid] = midpointLatLon(lat1, lon1, lat2, lon2)
% midpoint of two lat long cord on a sphere, all units are deg
Bx = cosd(lat2) * cosd(lon2-lon1);
By = cosd(lat2) * sind(lon2-lon1);
latMid = atan2d(sind(lat1) + sind(lat2), ...
sqrt( (cosd(lat1)+Bx)*(cosd(lat1)+Bx) + By*By ) );
lonMid = lon1 + atan2d(By, cosd(lat1) + Bx);
Más respuestas (1)
Ted Shultz
el 20 de Ag. de 2019
There is a built in function in the matlab mapping toolbox that does what I think you are looking for: meanm
Mean location of geographic coordinates
Syntax
[latmean,lonmean] = meanm(lat,lon)
[latmean,lonmean] = meanm(lat,lon,units)
[latmean,lonmean] = meanm(lat,lon,ellipsoid)
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!