을 얻을 지도 위치 때 WGS-84lat/lon 경우 왼쪽과 오른쪽 하단 모서리'lat/lon 진

StackOverflow https://stackoverflow.com/questions/1415375

  •  06-07-2019
  •  | 
  •  

문제

한 두 가지가 아닌 지도,예를 들어에서 openstreetmaps.org.알 WGS-84lat/lon 의 왼쪽과 오른쪽 하단의 지도입니다.을 어떻게 찾을 수 있습니다 다른 위치를 지도에서 주어진 WGS-84lat/lon 좌표?

도움이 되었습니까?

해결책

면 지도 거리가 도시의 레벨을 사용합 mercator 프로젝션 (로 openstreetmap.org 것),그리고 너무 가까운 기둥,선형 보간을 수 있습니다.가정하면 다음과 같다:

  • TL=lat/lon 의 왼쪽 상단 모서리
  • BR=lat/lon 의 오른쪽 하단
  • P=lat/lon 의점을 찾으려면 지도
  • (w,h)=폭과 높이의 지도는 당신이(픽셀?)
  • 의 원산지 지도 이미지(0,0),에 왼쪽 위 모서리

, 리 보간(x,y)위치에 해당 P:

x = w * (P.lon - TL.lon) / (BR.lon - TL.lon)
y = h * (P.lat - TL.lat) / (BR.lat - TL.lat)

일반 잡았다의:

  • Lat/lon 표기 컨벤션 목록을 위도와 경도 두 번째,즉"수직기 전에""수평".이것이 반대하는 일반적인 x,y 표기법의 이미지를 조정합니다.

  • 위도 값을 증가 갈 때에 북쪽-구 방향("")에는 반면,y 좌표를 지도에서 이미지 증가시킬 수 있을 때 하고 있다.

  • 면 지도를 커버 큰 영역을,선형 보간을 정확하지 않습니다해도 일어나고 있다.지도에 걸쳐 있는 하나의 분위기 위도 및 지구의 거주 지역(예를들면베이 지역),중앙 위도 꺼져있을 것입니다 0.2%또는 그래서,어떤 가능성이 높해 픽셀(에 따라 크기)

는 경우에는 정확한을 위해 충분히 귀하의 요구,당신은 여기 중지 할 수 있습니다!

더 많은 정확한 수학에서 점점 P 의 위도를 픽셀의 y 위치는 것으로 시작 메르카토르 수학이다.우리가 알고 있는 위도 P.lat,Y 위치에 투영을 시작하는 적도에서는 다음과 같습니다(내가 사용하여 자본 Y 으로 달리 y 값은 우리가 찾고 있는지,Y 에서 시작하는 적도 증가 북쪽으로):

Y = k * ln((1 + sin(P.lat)) / (1 - sin(P.lat)))

일정 k 에 따라 달라지는 수직 스케일의 지도하는,우리는 알 수 없습니다.다행히도,그것은 추론 수 있습니다 관찰하는 y(TL)-y(BR)=h.는 미국:

k = h / (ln((1 + sin(TL.lat)) / (1 - sin(TL.lat))) - ln((1 + sin(BR.lat)) / (1 - sin(BR.lat))))

(이궁!는 네 가지 수준의 브래킷!) 가 k 알려져있다,우리는 이제 공식을 알아 Y 의 위치가 어떤 위도입니다.우리는 필요하에 대한 정확:(1)우리의 y 값에서 시작 TL.lat 아닌 적도,그리고(2)y 성장을 향해 남쪽보다 북쪽에.이 us:

Y(TL.lat) = k * ln((1 + sin(TL.lat)) / (1 - sin(TL.lat)))
Y(P.lat)  = k * ln((1 + sin(P.lat )) / (1 - sin(P.lat )))
y(P.lat)  = -(Y(P.lat) - Y(TL.lat))

그래서 이것은 당신을 가져옵니다

x = w * (P.lon - TL.lon) / (BR.lon - TL.lon) // like before
y = -(Y(P.lat) - Y(TL.lat))                  // where Y(anything) depends just on h, TL.lat and BR.lat 
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top