문제

나는 미국의지도를 가지고 있으며,이지도에 관심있는 장소에 해당하는 픽셀 좌표가 많이 있습니다. 이들은 다양한 설정 및 통계에 따라 런타임에지도에 동적으로 그려집니다.

이제 크기가 다른 미국의 다른지도로 전환해야하며지도의 왼쪽 상단은 바다에 약간 있습니다.

그래서 나는 서로 대응하는 각 맵에 대해 작은 좌표 세트를 수동으로 수집했습니다. 예를 들어, 첫 번째 맵의 점 (244,312)은 두 번째 맵의 점 (598,624)에 해당하고 첫 번째 맵의 (1323,374)는 두 번째 맵의 (2793,545)에 해당합니다.

그래서 저는 X 및 Y 차원의 번역을 결정하려고합니다. 따라서 구식 및 새지도에 대한 포인트 세트가 주어지면 어떻게 x' = A*x + C 그리고 y' = B*x + D 기존지도에서 새 맵에서 새 지점을 자동으로 번역하는 방정식?

도움이 되었습니까?

해결책

두 맵에서 두 지점의 좌표가 있습니다 (x1,와이1), (x '1, y '1), (x2, y2) 및 (x '2, y '2).

A = (x'1 - x'2)/(x1 - x2)
B = (y'1 - y'2)/(y1 - y2)
C = x'1 - A x1
D = y'1 - B y1

추신 방정식은 한 맵에서 다른 맵으로 간단한 스케일링/번역을 의미합니다. 지구에서 비행기마다 다른 투영을 사용하는 것이 걱정된다면 방정식이 더 복잡해집니다.

다른 팁

결과를 얻으려면 부정확성에 대해 더 강력한 결과를 얻으려면 두 포인트가 도움이 될 수 있습니다. 이 경우 시프트 및 스케일링 최소 제곱 만 맞는 것으로 가정하면 다음과 같이 도움이 될 수 있습니다. 위키 백과

기본적으로 합계를 최소화합니다 ((axi + b-xi ')^2 + (cyi+d-yi ')^2) 최적 A, B, C, D를 선택하여.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top