이전 + n 미터에서 새로운 경도, 위도 계산
좌표와 거리 (미터)를 기준으로 2 개의 새로운 경도와 2 개의 새로운 위도를 만들고 싶습니다. 특정 지점 주변에 멋진 경계 상자를 만들고 싶습니다. 도시의 일부이며 최대 ± 1500 미터입니다. 그러므로 나는 지구의 곡률을 고려해야한다고 생각하지 않습니다.
그래서 저는 50.0452345
(x)와 4.3242234
(y)가 있고 x + 500 미터, x-500 미터, y-500 미터, y + 500 미터를 알고 싶습니다.
나는 많은 알고리즘을 찾았지만 거의 모든 것이 점 사이의 거리를 다루는 것 같습니다.
경도 당 킬로미터 수는 약
(2*pi/360) * r_earth * cos(theta)
theta
위도는 어디에 있으며 r_earth
약 6378km입니다.
위 도당 킬로미터 수는 모든 위치에서 거의 동일합니다.
(2*pi/360) * r_earth = 111 km / degree
따라서 다음을 수행 할 수 있습니다.
new_latitude = latitude + (dy / r_earth) * (180 / pi);
new_longitude = longitude + (dx / r_earth) * (180 / pi) / cos(latitude * pi/180);
만큼 dx
그리고 dy
땅의 반경에 비해 작고 너무 가까이 극으로하지 않습니다.
받아 들여지는 대답은 완벽하게 옳고 작동합니다. 나는 약간의 조정을하고 이것으로 바뀌었다 :
double meters = 50;
// number of km per degree = ~111km (111.32 in google maps, but range varies
between 110.567km at the equator and 111.699km at the poles)
// 1km in degree = 1 / 111.32km = 0.0089
// 1m in degree = 0.0089 / 1000 = 0.0000089
double coef = meters * 0.0000089;
double new_lat = my_lat + coef;
// pi / 180 = 0.018
double new_long = my_long + coef / Math.cos(my_lat * 0.018);
이것이 도움이되기를 바랍니다.
위도의 경우 :
var earth = 6378.137, //radius of the earth in kilometer
pi = Math.PI,
m = (1 / ((2 * pi / 360) * earth)) / 1000; //1 meter in degree
var new_latitude = latitude + (your_meters * m);
경도의 경우 다음을 수행하십시오.
var earth = 6378.137, //radius of the earth in kilometer
pi = Math.PI,
cos = Math.cos,
m = (1 / ((2 * pi / 360) * earth)) / 1000; //1 meter in degree
var new_longitude = longitude + (your_meters * m) / cos(latitude * (pi / 180));
변수 your_meters
는 양수 또는 음수 값을 포함 할 수 있습니다.
체크 아웃 했습니까 ? 주어진 위도 / 경도에서 북쪽으로 xkm 인 위도 / 경도를 어떻게 찾 습니까?
이러한 계산은 기껏해야 성가 시며 많은 작업을 수행했습니다. haversine 공식은 당신의 친구가 될 것입니다.
일부 참조 : http://www.movable-type.co.uk/scripts/latlong.html
참고 URL : https://stackoverflow.com/questions/7477003/calculating-new-longitude-latitude-from-old-n-meters
'Program Tip' 카테고리의 다른 글
Python : Python 목록은 len ()에 대한 개수를 유지합니까, 아니면 각 호출에 대해 계산합니까? (0) | 2020.10.26 |
---|---|
조인 업데이트를위한 MySQL 구문 (0) | 2020.10.26 |
WPF에서 Xaml 파일에 주석을 추가하는 방법은 무엇입니까? (0) | 2020.10.26 |
접두사를 포함하는 knockoutjs로 id 속성 설정 (0) | 2020.10.26 |
Python의 튜플 목록에서 최대 값 찾기 (0) | 2020.10.26 |